pyinstaller 打包出现“Failed to execute script XXX“问题

pyinstaller 打包PyQt5的 *.exe 程序出现"Failed to execute script XXX"问题

	由于本人刚接触python,偶然看到用PyQt5做窗口程序,非常有意思。所以跟着bilibili视频学习。想用PyQt5
	做出一个最简单简单的窗口登录程序,无奈,入了很多坑
	从External Tools 的导入就开始
	
1.QTdesigner
	遇到的问题是,按网络的教程下载,安装;但是在设置program路径时,找不到designer.exe文件。
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20200712161057861.png#pic_center)
	搞了一下午,各种方式,环境变量配置、PyQt5卸载重装多次依旧解决不了,之后终于找到解决办法,
	非常感谢这位博主。
	https://blog.csdn.net/qq_42258776/article/details/106783308
	![提示图片:https://img-blog.csdnimg.cn/20200712165844792.png#pic_center)
	方法:网络教程中无此问题,应该是PyQt5版本更新后內部文件做了更改,网络教程是之前的版本。
	问题可能出在安装目录里,查看了一下对应的plugins文件夹,将‪pyqt5_tools\Qt\plugins文件夹进行
	了复制,然后覆盖到site-packages\pyqt5_tools\Qt\bin目录下,之后问题解决。
	个人也感觉很奇特,折腾了一下午,既然这样解决的。
	
		
2.PyUIC
	问题是:PyUIC第一个工程可以正常使用,但是新建了一个工程,但是QTdesigner可以用,
	生成的 *.ui 文件,但是无法用PyUIC进行翻译。老是提示找不到此文件
	后来发现是因为在当初External Tools 设置时,Working directory配置时,与QTdesigner的对应配置
	不一样。最后都改成$FileDir$,问题顺利解决。
	

3.在用pyinstaller 打包出现"Failed to execute script XXX"问题
	 在cmd中打包时  用命令:pyinstaller -F XXX.py  出现
	“ 4703 WARNING: Hidden import "sip" not found!” 的提示警告
	打包完成后,我在生成的dist文件中找到 XXX.exe 文件并运行。出现按
 	"Failed to execute script XXX"对话框。

之前的思路一直是,按安装提示:4703 WARNING: Hidden import “sip” not found! 去找。
从新安装了STP包(pip install STP);一样解决不了。
在主文件中增加
import os
import sipbuild.
if hasattr(sys, ‘frozen’):
os.environ[‘PATH’] = sys.MEIPASS+ “;” + os.environ[‘PATH’]
仍然解决不了。

之后按网友用 pyinstaller 命令中的 -c 命令去打包(即:pyinstaller -c XXX.py),dist中生成的exe文件,
能在控制台中查看错误。我双击XXX.exe,发现
在这里插入图片描述
并没有提示错误信息;之后按控制台提示输入 .\demo 运行提示为
在这里插入图片描述
但是这有点太奇怪了,说模块中无法找到属性“Ui _ Dialog”;我在文件中定义的明明白白,
在pycharm运行毫无问题,怎么打包成exe,说这个问题。
之后网友提供一个情况可能是重名了,即文件名和程序导入名称相同了
比如:本身文件名为lianxi.py 在此文件中又import lianxi 就会出现这种错误

我检查了以下,我有一个test.py。主文件中名称为demo.py;在demo.py中有import test。
但是我的并没有重名,但是这提供给我一个新的思路。我把test.py换成test1.py。并把
demo.py中导入的名称一样换成test1
问题解决,exe程序正常运行。所以问题出在test命名上。以后值得注意!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值