PyQt5 pyinstaller Failed to execute script 解决办法

PyQt5 pyinstaller Failed to execute script 解决办法

  1. 打包的时候取消**-w**参数,让显示命令行。
  2. 打开文件夹,按住Shift,右键,在此处打开powershell,或者命令行
  3. 将生成的exe文件拖入,按回车
  4. 发现报错ImportError: unable to find Qt5Core.dll on PATH
    这个问题在查阅了以后发现是PyQt5有些版本打包有BUG

解决办法:
1.需要手动将PyQt5\Qt\bin路径添加到环境变量
2.或者在.py导入模块时添加路径

```python
import sys, os
if hasattr(sys, 'frozen'):
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
from PyQt5 import QtCore, QtWidgets, QtGui
```

3.直接pip install PyQt5 --upgrade更新到最近版本,重新打包即可。

参考github讨论区

### 使用 PyInstaller 打包 PyQt5 应用程序 #### 安装依赖项 为了确保能够顺利打包 PyQt5 应用程序,需确认已安装必要的库。如果尚未安装 `PyQt5`,可以通过以下命令来完成安装: ```bash pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 此操作会从清华大学镜像源下载并安装最新版本的 PyQt5[^1]。 #### 创建基础窗口应用 构建一个简单的 PyQt5 程序作为示例,该程序仅展示了一个空白窗口。以下是实现这一功能的基础代码片段: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 220) self.setWindowTitle('Simple Window') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 这段脚本定义了一个继承自 `QWidget` 的类,并设置了窗口的位置、大小以及标题;最后通过调用 `show()` 方法使窗口可见。 #### 准备打包环境 在准备使用 PyInstaller 进行打包前,建议先查阅其帮助文档以熟悉可用选项: ```bash pyinstaller -h ``` 这一步骤有助于理解不同参数的作用及其应用场景[^4]。 #### 实施打包过程 当一切就绪之后,就可以利用 PyInstaller 来创建独立可执行文件了。对于希望生成单个不含控制台界面的应用来说,推荐采用如下指令: ```bash pyinstaller --onefile --noconsole demo.py ``` 这里 `-–onefile` 参数指示 PyInstaller 将所有资源压缩到单一文件内,而 `--noconsole` 则告知工具不显示命令提示符窗口。 #### 解决潜在问题 有时可能会遇到由于特定版本兼容性引起的问题。例如,在某些情况下更新或降级 PyInstaller 版本可能解决问题。比如有报告指出卸载较新版本 (如 v3.5) 并回退至更稳定版 (如 v3.0),可以让打包后的应用程序正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值