pyinstaller打包python3.6和PyQt5中各種錯誤的解決方案匯總
前言:
最近在學習單片機,老師要求自己寫串口通信的上位機程序,我采用比較簡單的pyqt5+serial模塊來完成任務,pycharm測試一切正常,在用pyinstaller打包時出現瞭很多錯誤,查詢瞭很多資料後得到瞭解決,這裡匯總一下解決的方法
1. WARNING: lib not found: api-ms-win-crt-string-l1-1-0.dll dependency
2999 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of c:\python\python.exe
3031 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of c:\python\python.exe
3218 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of c:\python\VCRUNTIME140.dll
3312 WARNING: lib not found: api-ms-win-crt-convert-l1-1-0.dll dependency of c:\python\VCRUNTIME140.dll
6494 WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of c:\python\DLLs_hashlib.pyd
7271 WARNING: lib not found: api-ms-win-crt-stdio-l1-1-0.dll dependency of c:\python\DLLs\unicodedata.pyd
類似於這種情況就是在python目錄下缺少相關的ddl文件,而自己的anocoda目錄下是有這些文件的,我的解決辦法是把anaconda目錄下的文件直接復制到python的目錄下,問題就得到瞭解決。
考慮到可能有的人沒有下載anaconda,這裡我把文件打包下來,大傢自取。
點擊這裡下載
2. 打包完成後運行時出現 "fail to excute script"
這裡是不容易發現問題的,造成這種問題的原因很多。
在使用PyInstaller打包python程序,打包命令為:
pyinstaller -F -w -i manage.ico yourpyfile.py
順便說一下幾個參數的作用
- -F:是直接生成單獨的exe文件,不附帶各種依賴文件的。
– -c:生成的exe文件打開方式為控制臺打開。
-
-w:這個和上面的-c對應,如果你的程序是有ui的,那就用這個-w。這樣不會出現控制臺,直接是你的ui。
-
-I:給你的exe文件添加一個圖標,後面要緊接著你想要的ico文件。
-
-p:後面緊跟著你要指定的模塊搜索路徑,如果你的模塊安裝的路徑沒有被PyInstaller自動檢索到的話,就需要自己指定瞭。
出現“failed to excute script xxx”
這個原因實在是太多瞭,他就是告訴你程序不能運行。如果你是用-w方式打包的,我們這樣不能看出來問題的根源是什麼。所以我們還是以-c方式打包exe看一下控制臺輸出的error內容是什麼。
cmd下運行打包出來的exe
給我報的錯誤是:no modle named "PyQt5.sip"
其實tensorflow這個包我已經導入瞭,而且可以被PyInstaller搜索到。隻是它提示我的tensorflow.contirb這個搜索不到,
我猜是版本問題?因為我的tensorflow更新過,最新版的去掉瞭好多東西,也有一些模塊改瞭實現方式和名稱。‘
真正的原因我還沒找,但是就先這樣吧,因為我想趕緊把問題解決瞭。
那就:
pyinstaller -F -I manage.ico yourpyfile.py --hidden-import PyQt5.sip
這樣打包,直接把它想要import的這個子包屏蔽掉瞭,反正也沒用到。
到這裡所有的問題都得到瞭解決!
總結
到此這篇關於pyinstaller打包python3.6和PyQt5中各種錯誤解決的文章就介紹到這瞭,更多相關pyinstaller打包python3.6 PyQt5內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Pyinstaller打包文件太大的解決方案
- pyinstaller打包可執行文件,存放路徑包含中文無法運行的解決方案
- python深度學習tensorflow安裝調試教程
- 教你在pycharm中使用tensorflow的方法
- pyinstaller封裝exe的操作