【发布时间】:2021-02-16 12:22:19
【问题描述】:
我正在尝试使用 PyInstaller 打包 PyQt5 Python 应用程序。
当我正常打包时,不使用UPX,它工作正常。但是,当我开始使用 UPX 时,我开始遇到很多问题。我必须使用--upx-exclude "vcruntime140.dll" 来防止该文件被损坏。
然后,我遇到了这个问题。
Traceback (most recent call last):
File "main.py", line 3, in <module>
ImportError: DLL load failed while importing QtWidgets: The parameter is incorrect.
[26400] Failed to execute script main
这是main.py的开头:
import sys
import PyQt5
from PyQt5 import QtWidgets
from PyQt5.QtGui import QIcon
我读到here(我认为类似的问题)我可能在隐藏导入方面遇到问题,所以我使用--hidden-import "PyQt5" 运行PyInstaller 命令,然后使用--hidden-import "PyQt5" --hidden-import "QtWidgets"。但我一直收到同样的错误,DLL load failed while importing QTWidgets。
我使用的完整 PyInstaller 命令是:
pyinstaller -n "[exe name]" -i "[icon file path].ico" --upx-dir "[path to UPX]\upx-3.96-win64" --upx-exclude "vcruntime140.dll" --hidden-import "PyQt5" --hidden-import "QtWidgets" --clean main.py
我可以做些什么来修复这个错误?
【问题讨论】:
标签: python pyqt pyqt5 pyinstaller