pyinstaller failed to execute script

打包

tips:欢迎大家收藏我的博客: https://www.fengwenhua.top/
例子使用pachonggui.py

  1. 正常执行一遍
pyinstaller -Fw pachonggui.py
  1. 给脚本加一行代码
import PyQt5.sip

然后再执行同样的命令

pyinstaller -Fw pachonggui.py
  1. 删掉import PyQt5.sip,可以继续写代码了。如果要打包,从1开始

出现failed to execute script的排查方法

法一:

命令执行完毕之后 build\pachonggui\warnpachonggui.txt,上面会记载着错误

法二:

# 使用完下面这条指令之后,打开exe,提示failed to execute script
pyinstaller -Fw pachonggui.py
# 然后执行下面这条执行,会在list下生成一个目录,进入该目录,用**命令行**执行该exe,就会看到错误了
pyinstaller -D pachonggui.py
pyinstaller打包使用pyqt5模块的时候,在win平台下,由于pyinstaller无法准确获取QT动态库文件路径,会报错导致无法打开运行程序,并提示错误信息pyinstaller failed to execute script pyi_rth_qt5plugins此时我们需要在打包的时候直接告诉pyinstaller到哪里去找,这个路径分隔符需要是unix形式:

pyinstaller --paths C:/****/Python/Python35-32/Lib/site-packages/PyQt5/Qt/bin -F -w ****.py

pyqt5打包问题经过

这里用到的文件是pachonggui.py,里面使用了pyqt5 的库

安装好pyinstaller后,先使用下面的命令对脚本进行打包

pyinstaller.exe -Fw .\pachonggui.py

执行完毕,生成两个目录

exe文件在dist目录下

双击运行出现Failed to execute script pachonggui错误

先去build目录那里,找到warn***.txt文件,里面会记录一些错误

这里可以看到,pyqt5的库没有找到

分析:正常来说,如果pyinstallerpip3安装好的,那么pyqt5应该也在同一个目录下,应该不会出现找不到路径的情况.所以说,有两种情况,一个是pyinstaller错了,一个是pyqt5错了,这里我先指定pyqt5的路径让它试试

找到python3的安装路径,我的是如下

然后使用--path 指定库目录,有一点需要注意:这里用的是/作为目录分隔符,而不是\

pyinstaller.exe --path E:/Python/Python36-32/Lib/site-packages/PyQt5/Qt/bin -Fw .\pachonggui.
py

重新打包之后,再次运行,报同样的错误,看build目录下的warn***.txt文件,还是同样的,没有找到PyQt5的库

因为本人安装了python2.7python3.6,但是我只给python2.7配置了环境变量,所以说,命令行那里的pyinstallerpython27目录下的,而不是python36-32目录下的,所以说,接下来,我命令提示符那里指定使用python36-32下的pyinstaller试试

执行打包命令之后,看到命令提示符,多了一些东西sip not found,不管它先,先记下来,然后继续运行一下exe

没错,还是这个错误… …

看一下warn***.txt

发现pyqt5已经成功导入了,说明之前的错误原因真是因为调用了python27pyinstaller,指定使用python36-32下的pyinstaller就没毛病了

这时候的warn***.txt是一大堆的看不懂的东西… …怎么办?

没关系,还有办法,使用-D指令,将这个exe弄成一个目录,然后使用命令行去运行新目录下的exe,然后你应该会看到报错误了

E:\Python\Python36-32\Scripts\pyinstaller.exe -D .\pachonggui.py

这时候dist目录下会多一个目录pachonggui

然后,在这里,我需要使用命令提示符去运行这个exe

结果如下:

… …PyQt5.sip是什么东东???我代码里面没有用到啊!!!~~~

在这种情况下,我决定,手动在代码里面加入它,然后再执行一次打包命令

不明白为什么提示sip not found还在,但是,这时候,exe已经可以运行,没有bug了

"failed to execute script pyi_rth_multiprocessing" 是一个常见的错误信息,通常出现在使用Python打包工具(如PyInstaller、cx_Freeze等)将Python程序打包成可执行文件时。 这个错误通常出现的原因是在尝试导入multiprocessing模块时出现问题。multiprocessing模块是Python中用于实现多线程和多进程编程的模块,它使用了一些特殊的技术和操作系统的特性来实现并行处理。 该错误可能是由于打包工具在尝试导入multiprocessing模块时无法找到所需的库文件或模块文件。解决这个问题的方法有以下几个方面: 1. 检查Python环境:确保你的Python环境中已经正确安装了multiprocessing模块,并且可以正常导入使用。可以尝试在命令行或Python解释器中直接执行import multiprocessing命令来验证。 2. 升级打包工具:有时,这个错误可能是由于使用的打包工具版本过旧导致的。你可以尝试升级你所使用的打包工具,或者查看打包工具的官方文档以获取更多关于这个错误的解决方法。 3. 配置打包选项:某些打包工具可能需要特殊的配置选项来正确导入multiprocessing模块。你可以查看打包工具的官方文档,了解如何正确配置打包选项来解决这个问题。 4. 避免使用multiprocessing模块:如果以上方法都无法解决问题,你可以考虑避免使用multiprocessing模块,在你的程序中使用其他替代方案,如threading模块来实现多线程编程。 总结来说,"failed to execute script pyi_rth_multiprocessing" 错误是由于导入multiprocessing模块时出现问题而导致的。解决方法包括检查Python环境、升级打包工具、配置打包选项或使用其他替代方案。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值