pyqt5程序打包成exe文件的步骤和遇到的坑,以及如何更改exe的图标

首先说一下想要把系统图标改成自己的图标,需要把图片转换成后缀为.ico的图标

此时可以使用工具:Greenfish Icon Editor Pro 3.31  我是从新浪科技的网站上下载的,没有乱七八糟的游戏新浪数码 - 手机|数码相机DC|笔记本|平板电脑iPad_新浪网

开始打包

首先输入下面的命令,如果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

这个参考了pyinstaller打包报错: RecursionError: maximum recursion depth exceeded_放开那禽兽冲我来的博客-CSDN博客,说是因为递归遍历超过了限制,(但一般是因为你某一步有错,因为我之后把有错的地方解决了就不用加下述代码了)为了看最后生成的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'

成功解决 ModuleNotFoundError: No module named ‘PyQt5.sip‘_一个处女座的程序猿的博客-CSDN博客_pyqt5提示没有sip4.19.1中说是因为pyqt5与sip版本不匹配造成的,需要采用pip更新sip库,

pip install SIP

但是我用这个方法不行!我升级之后SIP版本还是4.19.8,看刚刚那个博客下面的评论,说是把PyQt5版本降为5.10.1版本的就可以,PyQt5 · PyPI这里可以下载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: 找不到指定的程序。

看了Importing the multiarray numpy extension module failed_bianjun1075的博客-CSDN博客_importing the multiarray numpy extension module fa下的评论,解决方案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删了。这个错误出现的原因就是你打包的时候把文件写进去了,执行的时候又找不到这个文件。

需要解决这个错误的同学可以参考这篇博客No module named 'pandas._libs.tslibs.timedeltas_leventse的博客-CSDN博客

以下是我遇到的错误,有点晕,直接不引用pandas了。。。

然后终于打包好了,但是打开之后,感觉有些效果跟在QT设计师里看到的不一样,无所谓了,可以成功打包就很不容易了,感谢上面提到的各种博客的博主,以及博文下的评论……

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值