首先說一下想要把系統圖標改成自己的圖標,需要把圖片轉換成後綴爲.ico的圖標
此時可以使用工具:Greenfish Icon Editor Pro 3.31 我是從新浪科技的網站上下載的,沒有亂七八糟的遊戲http://down.tech.sina.com.cn/page/45742.html
開始打包
首先輸入下面的命令,如果pyinstaller沒有下載,請pip install pyinstaller
pyinstaller -F -w -i img.ico main.py
或
pyinstaller -F -c -i img.ico main.py
(建議先用-c,這樣如果打包不成功的話可以看到哪裏有錯)
- -F 指只生成一個exe文件,不生成其他dll文件
- -w 不彈出命令行窗口
- -i 設定程序圖標 ,其後面的ico文件就是程序圖標
- main.py 就是要打包的程序
- -c 生成的exe文件打開方式爲控制檯打開。
報錯1:Maximum recursion depth exceeded
這個參考了https://blog.csdn.net/lucytheslayer/article/details/81030840,說是因爲遞歸遍歷超過了限制,(但一般是因爲你某一步有錯,因爲我之後把有錯的地方解決了就不用加下述代碼了)爲了看最後生成的exe哪裏有錯不能運行,需要執行以下操作,以便繼續生成exe文件
解決:
(1)打開生成的xxx.spec文件,把一下代碼加進去
import sys
sys.setrecursionlimit(5000)
(2)使用命令行
pyinstaller xxx.spec
完成之後,可以看到dist文件夾下有一個exe文件,雙擊打開
報錯2:Failed to execute script MainPage
如果是用-w打包,最後會彈出一個錯誤對話框,寫着Failed to execute script MainPage,爲了弄清楚是爲什麼錯誤,需要用-c打包,使用控制檯窗口查看
錯誤1:ModuleNotFoundError: No module named 'PyQt5.sip'
https://blog.csdn.net/qq_41185868/article/details/80903095中說是因爲pyqt5與sip版本不匹配造成的,需要採用pip更新sip庫,
pip install SIP
但是我用這個方法不行!我升級之後SIP版本還是4.19.8,看剛剛那個博客下面的評論,說是把PyQt5版本降爲5.10.1版本的就可以,https://pypi.org/project/PyQt5/5.10.1/#files這裏可以下載5.10.1版本,下載完成後進入此文件所在的目錄使用pip安裝,我遇見了一個錯誤
Could not install packages due to an EnvironmentError: [WinError 32] 另一個程序正在使用此文件,進程無法訪問。: 'c:\\program files\\anaconda3\\lib\\site-packages\\pyqt5\\qt\\resources\\icudtl.dat'
Consider using the `--user` option or check the permissions.
這個我重啓電腦之後再pip就可以了
降級後pyqt5再打包,就成功了(但是有個不好的地方!我pyqt5降級成這個版本,eric6不能正常啓動,eric6會閃退,沒辦法,我只能打包的時候降級,不打包的時候升級了,我使用5.11.2版本,eric6可以正常打開)
(兩個版本都要用……)
錯誤2:ImportError: Importing the multiarray numpy extension module failed. Mostlikely you are trying to import a failed build of numpy.If you're working with a numpy git repo, try `git clean -xdf` (removes allfiles not under version control). Otherwise reinstall numpy.
Original error was: DLL load failed: 找不到指定的程序。
看了https://blog.csdn.net/bianjun1075/article/details/77803395下的評論,解決方案1是把C:\Users\user\Anaconda3\Library\bin添加到系統變量,方案2去Anaconda目錄中找打lib下的site-packages找到這幾個numpy相關的包,直接刪除,然後command 直接安裝pip install numpy ,這兩個方案一個不行就試試另外一個吧
錯誤3:No module named 'pandas._libs.tslibs........
這個錯誤我不算是解決了吧,因爲好像隱藏了一個,又會出現另一個報錯,我看了看pandas這個包我也可以先不用,就直接把import pandas刪了。這個錯誤出現的原因就是你打包的時候把文件寫進去了,執行的時候又找不到這個文件。
需要解決這個錯誤的同學可以參考這篇博客https://blog.csdn.net/lj1404536198/article/details/79272450
以下是我遇到的錯誤,有點暈,直接不引用pandas了。。。