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

记pyinstaller 打包 PyQt5 过程中遇到的问题及解决方法

程序员文章站 2022-03-31 10:20:51
...

 

遇到的问题:

ImportError: No module named PyQt5.QtWidgets

D:\PCISync\dist>PCISync.exe
Traceback (most recent call last):
  File "PCISync\login.py", line 12, in <module>
ImportError: No module named PyQt5.QtWidgets
[14196] Failed to execute script login

排查过程:

1、百度后,在 spec 文件的 hiddenimport 中添加下面内容仍然报错,

hiddenimports=['PyQt5.QtWidgets', 'PyQt5.QtWidgets.QMessageBox'],

 

2、查看打包过程,发现 “Python: 2.7.10

D:\PCISync>pyinstaller  login.spec
255 INFO: PyInstaller: 3.6
256 INFO: Python: 2.7.10
256 INFO: Platform: Windows-7-6.1.7601-SP1

3、查看window下pyinstaller的安装位置,发现python2和python3都有安装pyinstaller, 但是PyQt5是安装在python3环境中的,

 

问题原因:

python2和python3都安装有pyinstaller, 在使用时,先在python2中查找,找到后直接执行,但是因为python2中没有安装PyQt5,所以才导致上面问题。

解决方法:

方法1、

将python2环境中Scripts下的pyinstaller.exe移除或者重命名

方法2、

将python3环境中Scripts下的pyinstaller.exe 重命名为 pyinstaller3.exe, 将同目录中的pyinstaller-scripts.py 重命名为 pyinstaller3-scripts.py

就可解决问题。