使用pyinstaller打包exe文件遇到的問題總結

我在windows+anaconda的前提下,使用pyinstaller將python程序打包成exe文件時陸續遇到很多問題,在這裏總結一下。

pyinstaller介紹

首先安裝pyinstaller,直接使用命令pip install PyInstaller即可。

安裝好後,對於需要打包的文件,在該文件目錄下使用類似如下命令即可。這裏的xxx.py代表的是在程序中執行入口的py文件。

pyinstaller xxx.py

上面的命令沒有加任何參數,pyinstaller的參數如下圖。

遇到的問題彙總

1.首先要保證在編輯器里程序可以運行,並且在打包時要把程序關掉。

每次打包失敗了以後最好吧spec文件刪除掉,那是上一次打包遺留的文件。

還有就是程序裏儘量不要用import,儘量用from…import…,使用import的話,在打包的時候會將整個包都打包到exe裏面,從而使最終的包太大。

 

2.我一開始直接用cmd命令執行打包語句,遇到了ImportError問題,報錯如下。

報錯的意思是找不到某個DLL文件,這很奇怪,不可能是環境問題,因爲在編輯器裏可以正常運行。突然想到我使用的anaconda 的環境,於是打開anaconda prompt,再次執行打包語句,不再出現這個問題。

 

3.然而又出現了新的問題。。還是ImportError,報錯如下。

第二句是在第一句的下面出現的。也就是在第271987個信息中,出現的import問題,解決這種問題就一個關鍵點:重裝

比如我這裏是在bokenh出現了問題,好的,把bokeh卸載了重裝,問題就沒有了。再出現這種問題就繼續重裝。

 

4.然而,還是不成功,又出現了下面的報錯。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 130: invalid continuation byte

這是編碼格式問題,解決方法就是先在控制檯中輸入 chcp 65001,然後在執行打包語句。

 

5.不出我所料,還是有問題!報錯如下。

Pyinstaller:Exception: Cannot find PyQt5 plugin directories

意思很明白了,不多說了,安裝PyQt5,已經安裝了就重裝一遍。

 

6.終於打包成了exe文件,就在項目文件的dist中,結果一運行,又出現了問題:

ModuleNotFoundError: No module named 'XXX'

因爲我用了第三方庫,解決的方法參考這個網址:https://blog.csdn.net/zyc121561/article/details/79562935

 

到這裏終於成功了。。。有點心累

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章