pyinstaller打包遇到的一些坑

用Python的numpy,pandas,scipy,matplotlib和wxpython寫了一個小軟件,我用的環境是anaconda3(Python3.6),本來覺得打包後應該不大,打包的結果硬是達到了800多兆,很是無語,網上說要在虛擬環境中打包(Anaconda可以創建),這裏有個坑就是你安裝的pyinstaller也是在這個虛擬環境中才行,不然打包的結果還是你原來的環境。

(1)pyinstaller打包的一些參數說明:

-F:打包成單個的文件,也就是將腳本中所有用到的庫都打包到一個單一文件中,也就是你要的exe文件,注意F是大寫;

-w:沒有加這個參數的話,運行程序時會彈出一個控制檯(window下式cmd),加這個參數的話不會出現這個控制檯;

-D:這個參數可以在程序運行出錯時,輸出錯誤信息,其實就是調試,在cmd中執行exe文件可以在cmd中看到完整的錯誤信息;

--icon:生成的exe的應用圖標;

--hidden-import:不導入某些庫/包

 

(2)打包成功,程序運行失敗,在cmd中運行時報錯:ImportError:No module named '庫名.xxx.xxx',類似這種錯誤的,如果這個東西不是程序必須得,那麼打包的時候加入--hidden-import  庫名.xxx.xxx,不導入它即可解決:

pyinstaller -Fw yourfile.py --hidden-import 庫名.xxx.xxx

(3)使用虛擬環境打包時,要安裝你程序中用到的所有庫,如果沒安裝可以成功打包,但是運行時會報錯:找不到庫。詳細的錯誤可以在build文件夾相應的目錄下找到,比如我的腳本是mainwindow.py,那麼這個文件夾就是mainwindow,其中有個文件warn-mainwindow.txt記錄了所有丟失的庫名等錯誤信息,如下圖所示:

還有別的坑,可以參考以下網友的鏈接:

https://blog.csdn.net/A807296772/article/details/82769835

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章