首先说一下想要把系统图标改成自己的图标,需要把图片转换成后缀为.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了。。。