python + Anaconda +pyqt 程式打包exe
python +pyqt 程式打包
打包命令
打包需要用到Pyinstaller這個模組
1、 需要安裝pyinstaller; 安裝方法:使用 pip install pyinstaller
2、用Anaconda Prompt黑視窗 cd到待打包的檔案目錄
3、輸入執行:pyinstaller -w -F xx\xx\xxx.py
-w: 直接釋出的exe應用帶命令列除錯視窗,在指令內加入-w命令可以遮蔽掉命令框(除錯階段可不加-w, 最終釋出時加入-w引數)
-F: 這裡是大寫。使用-F指令可以把應用打包成一個獨立的exe檔案,否則是一個帶各種dll和依賴檔案的資料夾
-p :這個指令後面可以增加pyinstaller搜尋模組的路徑。因為應用打包涉及的模組很多。這裡可以自己新增路徑
遇到的問題及解決方法
1.MouduleNotFoundError:No module named ** 打包完執行有可能會遇到未找到模組或庫。
解決方法:找到相應模組包的位置,然後在pyinstaller -w -F xx\xx\xxx.py 中再加 -p 路徑 即pyinstaller -p 路徑 -w -F xx\xx\xxx.py
2.This application failed to start because it could not find or load the Qt platform plugin “windows” in “”. 如果用到了pyqt做介面,依賴庫需要包含platforms裡的qwindow.dll ,會出現找不到Qt platform plugin "windows"問題。
3.FileNotFoundError 未找到檔案 如果你在pycharm中用 右鍵make_directory as–>sources path將子資料夾加入source_path 在python能正常執行,但pyinstaller沒有把這些資料夾裡的py檔案包括進去,所以會導致會出現未找到相關檔案。 解決辦法:把程式所用的所有檔案放在同一目錄下 或者用 -p 加路徑
4.資原始檔 有一些程式碼需要呼叫一些圖片和資原始檔的,這是不會自動匯入的,需要你自己手動複製進去才行。不然exe檔案執行時命令視窗會報錯找不到這個檔案。 若程式碼裡有載入資原始檔(圖片、gif、圖示、qss樣式表等) ,如果用的是相對路徑,則相對於生成的可執行程式目錄需有此資原始檔。比如 ”./resource/picture/1.png",在 生成的可執行程式目錄下 需有resource資料夾,resource裡有picture資料夾,picture裡有1.png圖片。
5.打包的檔案很大 解決方法:用什麼函式導什麼函式,不要import整個庫,因為這樣會把整個庫打包進去,沒用到的庫函式會佔用了很大的空間
6.gif顯示問題 我是用了Qlabel+Qmovie來播放gif圖的,在pycharm顯示完全沒問題,打包完之後就播放不了 看了網上的解決方法,把C:\Anaconda\pkgs\qt-5.6.2-vc14h6f8c307_12\Library\plugins\imageformats下的qgif.dll複製到目錄裡,png圖片檔案能顯示,但是gif圖還是播放不了,目前還沒解決。 如果有人有解決方法,請告訴我。