環(huán)境說明:
系統(tǒng): windows10
工具:Pycharm2019
Python:python3.7,
Package: PyQt5(5.13.0), PyInstaller(3.5), sip(5.0.0),
問題:編輯器可以運(yùn)行,pyinstaller打包單個exe后,無法運(yùn)行。
打包方式:pyinstall -F main.py
解決過程分析:
1. 查看路徑的中文問題(此問題筆者未遇到過)
2.改用debug打包
pyinstaller -D main.py
運(yùn)行exe,直接閃退,錯誤信息無法捕捉,可以在Terminal下運(yùn)行exe,就會看到錯誤信息,嘻嘻嘻。。。
主要錯誤: ImportError: unable to find Qt5Core.dll on PATH (當(dāng)然還有其他的小問題主要是一些依賴包問題)
3.缺少包依賴,直接安裝。
4.檢查完依賴,發(fā)現(xiàn)問題依然存在,想起c/c++里面依賴指名路徑
更改編譯參數(shù):pyinstaller -p venv\Lib\site-packages -F main.py
以為到此問題解決了,然并卵。。。
5.著實想不明白,也想不通問題出在哪里,開始各大搜索引擎啊,翻墻啊,嘗試各種解決方案啊,還是依然瓜皮。
最終問題是解決了,在main.py里面加入了如下代碼:
if hasattr(sys, 'frozen'):
os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
看了一堆資料,大概意思就是說pyqt5有些版本對系統(tǒng)變量的加載存在bug,估計也只有官方才知道,加上上面那一段代碼,設(shè)置一下,重新打包,問題解決了。