遇到的问题:
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
就可解决问题。