我們使用PyQt開發出來GUI了,很重要的一步就是將它打包成可執行文件,便於他人的使用,今天就配置一下在windows下打包windows下的可執行文件(.exe文件)。
先看一下我使用的電腦的系統屬性:
1.安裝pywin
我是直接在官網上下載的,鏈接地址(64位):
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/pywin32-220.win-amd64-py3.5.exe/download?use_mirror=jaist
其它位數的版本可以在這下載:
https://sourceforge.net/projects/pywin32/files/
下載完成後直接雙擊該文件,一直點擊下一步直到安裝完成。安裝路徑選擇你pyqt的安裝路徑就好了。這個沒有啥問題的。我的路徑對於關係是這樣的:
2.安裝pyinstaller
方法一:使用pip安裝的(不建議使用)
pip install pyinstaller
報了一個小問題:
那就升級一下pip,
繼續安裝
方法二:源碼安裝
直接去gitHub上下載源碼,注意找合適的版本。我用的是3.3.1。然後cd到該目錄下,
python setup.py install
安裝好了如圖:
至此,這個就安裝的差不多了。
3.使用pyinstaller打包文件
cd 到你的項目文件裡
pyinstaller -[opts] xxx.py
這個地方只需要打包你的主文件就好了,至於你這個文件import了多少個其它其它文件,這個沒有關係的。
可選的幾個簡答的opts有:
-F, –onefile 打包成一個exe文件。
-D, –onedir 創建一個目錄,包含exe文件,但會依賴很多文件(默認選項)。
-c, –console, –nowindowed 使用控制檯,無界面(默認)
-w, –windowed, –noconsole 使用窗口,無控制檯
-i ,image.ico -i表示圖標,圖標格式是.ico
打包一下我自己的py文件:
pyinstaller -w -F serial_gui_main.py
看一下我們的項目目錄:
dist下面就有我們需要的可執行文件:
我們雙擊一下試試:我曹報錯了
解決方法:這個還是很簡答的,少了配置庫文件:
我們添加環境變量:
位置就是:PyQt5的plugins文件夾所在位置。每個人的可能不一樣。
刪除掉剛才在項目裡面生成的那兩個文件夾:dist和build。繼續:
pyinstaller -w -F serial_gui_main.py
在點擊生成的.exe。成功了:
至此,我在自己的電腦上是沒有任何問題了。在別人的電腦上還沒有測試。
“PyInstaller打包的執行文件,只能在和打包機器系統同樣的環境下。不具備可移植性,若需要在不同系統上運行,就必須針對該平臺進行打包”。這是網上有的網友說的,要真是這樣的話,我感覺就沒有啥意思了。那就得去換別的打包工具了。
但是坑還是繼續的:
這是一個常見的錯誤
這個一般是pyinstaller的版本有問題,一般在是gitHub上下載3.4的版本就會出現這個問題,按理說最新的版本是沒有啥問題的,但是確實這個路徑不對。具體怎麼配置這個路徑,我也一直還沒有搞出來,最後不得已換了版本。有做出來的,歡迎留言,我們互相學習一下。
2.還有的會出現這個錯誤:
這也是一個噁心的錯誤。同樣的環境在,win7上打包就會出現這個問題。具體啥情況,我還是沒有搞出來,最後使用了win10。我也是醉了。
3.這個錯誤
我直接給了一個簡單粗暴的方法:
你不是找不到那個plugins,那我就直接自己建立這樣一個目錄,把文件複製過來,
這是自己建立的,
複製的是這裡的:就是PyQt5安裝目錄裡面的那個。
問題就解決了。
可能這個打包還有問題,只是現在還沒有發現,等我在好好試試了,要是還有問題,我再繼續發文了。
閱讀更多 小5嵌入式 的文章