PyQt5 Pyinstaller打包注意事項
阿新 • • 發佈:2019-01-26
Pyinstaller打包注意事項
- pyinstaller也是有版本的,所以對於一些庫的新版本是不支援的。
requests的版本只支援到 2.10.0 - PyQt5的路徑需要自己指定,用 –paths引數(前面是兩條槓)。
(控制檯打包和程式碼打包任選一種即可)
控制檯打包最終的命令為下
pyinstaller -F -w --paths=C:\Python\Python35\Lib\site-packages\PyQt5\Qt\bin
--paths=C:\Python\Python35\Lib\site-packages\PyQt5\Qt\plugins master.py
需要注意的是這裡的pyinstaller的版本和打包是指定的PyQt5對應的python版本應該一致。
打包後,不管輸出什麼資訊,具體執行一下打包後的檔案是個好習慣,這個輸出的資訊有時候也不一定準
PyQt裡面如果有按鈕,每次點選按鈕的執行動作有開啟一個新程序,那麼整個程式會重複啟動一次,這算是PyQt打包後的一點小問題,我採用的解決辦法是將程序改成執行緒。
程式碼打包最終程式碼如下
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from PyInstaller.__main__ import run
# -F:打包成一個EXE檔案
# -w:不帶console輸出控制檯,window窗體格式
# --paths:依賴包路徑
# --icon:圖示
# --noupx:不用upx壓縮
# --clean:清理掉臨時檔案
if __name__ == '__main__':
opts = ['-F', '-w', '--paths=C:\\Python\\Python35-win32\\Lib\\site-packages\\PyQt5\\Qt\\bin',
'--paths=C:\\Python\\Python35-win32\\Lib\\site-packages\\PyQt5\\Qt\\plugins',
'--paths=F:\\KwDownload\\x86',
'--icon', 'rxx.ico', '--noupx', '--clean' ,
'master.py']
run(opts)
DOS輸出資訊如下
D:\WORKSPACE\Python\AProject\ItChat-work>pyinstaller -F -w --paths=C:\Python\Python35-win32\Lib\site-packages\PyQt5\Qt\bin --paths=C:\Python\Python35-win32\Lib\site-packages\PyQt5\Qt\plugins master.py //-F:打包後只生成一個檔案 -w:執行時不帶DOS視窗
115 INFO: PyInstaller: 3.2.1 //pyinstaller版本
115 INFO: Python: 3.5.2 //Python版本
116 INFO: Platform: Windows-10-10.0.14393-SP0
117 INFO: wrote D:\WORKSPACE\Python\AProject\ItChat-work\master.spec //打包的檔案
121 INFO: UPX is not available.
122 INFO: Extending PYTHONPATH with paths
['D:\\WORKSPACE\\Python\\AProject\\ItChat-work',
'C:\\Python\\Python35-win32\\Lib\\site-packages\\PyQt5\\Qt\\bin',
'C:\\Python\\Python35-win32\\Lib\\site-packages\\PyQt5\\Qt\\plugins',
'D:\\WORKSPACE\\Python\\AProject\\ItChat-work'] //特別指定的依賴路徑
122 INFO: checking Analysis
155 INFO: checking PYZ
177 INFO: checking PKG
180 INFO: Building because D:\WORKSPACE\Python\AProject\ItChat-work\build\master\master.exe.manifest changed
181 INFO: Building PKG (CArchive) out00-PKG.pkg
4680 INFO: Building PKG (CArchive) out00-PKG.pkg completed successfully.
4685 INFO: Bootloader C:\Python\Python35-win32\lib\site-packages\PyInstaller\bootloader\Windows-32bit\runw.exe //這裡可以看出打包是多少位的,Windows-32bit就表明是打包成了32位版本的,具體多少為跟Python執行環境有關
4685 INFO: checking EXE
4687 INFO: Building because manifest changed
4687 INFO: Building EXE from out00-EXE.toc
4687 INFO: Appending archive to EXE D:\WORKSPACE\Python\AProject\ItChat-work\dist\master.exe //打包後的可執行檔案存放路徑
4708 INFO: Building EXE from out00-EXE.toc completed successfully.