欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-08 09:04:56
pyinstaller 打包出现"Failed to execute script XXX"问题由于本人刚接触python,偶然看到用PyQt5做窗口程序,非常有意思。所以跟着bilibili视频学习。想用PyQt5做出一个最简单简单的窗口登录程序,无奈,入了很多坑从External Tools 的导入就开始## **1.QTdesigner**遇到的问题是,按网络的教程下载,安装;但是在设置program路径时,找不到designer.exe文件。![在这里插入图片描述](ht...

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,发现
pyinstaller 打包出现“Failed to execute script XXX“问题
并没有提示错误信息;之后按控制台提示输入 .\demo 运行提示为
pyinstaller 打包出现“Failed to execute script XXX“问题
但是这有点太奇怪了,说模块中无法找到属性“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命名上。以后值得注意!!

本文地址:https://blog.csdn.net/duqiumail/article/details/107300901