我使用conda来处理我的环境。以前,我使用X11转发从我的linux盒子运行我的qt应用程序,没有任何导入问题,但我想在Windows上测试捆绑的可执行文件的性能,所以我尝试使用pyinstaller。
pyinstaller --onefile -w .main.py
我用下面的代码设置了conda环境(注意pyqt安装在环境中)。我最初试图将没有构建号的linux conda环境导出到windows,但conda似乎无法解决该环境。我直接安装了这些依赖项:
altgraph 0.17.2 pyhd8ed1ab_1 conda-forge
blas 1.0 mkl
bottleneck 1.3.4 py39h080aedc_0
ca-certificates 2022.4.26 haa95532_0
certifi 2021.10.8 py39haa95532_2
cffi 1.15.0 py39h0878f49_0 conda-forge
future 0.18.2 py39hcbf5309_5 conda-forge
icu 58.2 vc14hc45fdbb_0 [vc14] anaconda
intel-openmp 2021.4.0 haa95532_3556
jpeg 9e h2bbff1b_0 anaconda
libpng 1.6.37 h2a8f88b_0 anaconda
macholib 1.16 pyhd8ed1ab_0 conda-forge
mkl 2021.4.0 haa95532_640
mkl-service 2.4.0 py39h2bbff1b_0
mkl_fft 1.3.1 py39h277e83a_0
mkl_random 1.2.2 py39hf11a4ad_0
numexpr 2.8.1 py39hb80d3ca_0
numpy 1.21.5 py39h7a0a035_2
numpy-base 1.21.5 py39hca35cd5_2
openssl 1.1.1o h2bbff1b_0
packaging 21.3 pyhd3eb1b0_0
pandas 1.4.2 py39hd77b12b_0
pefile 2021.9.3 pyhd8ed1ab_0 conda-forge
pip 21.2.4 py39haa95532_0
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pycryptodome 3.14.1 py39hb82d6ee_1 conda-forge
pyinstaller 4.8 py39h8cc25b3_0
pyparsing 3.0.4 pyhd3eb1b0_0
pyqt 5.9.2 py39hd77b12b_6 anaconda
python 3.9.12 h6244533_0
python-dateutil 2.8.2 pyhd3eb1b0_0
python_abi 3.9 2_cp39 conda-forge
pytz 2021.3 pyhd3eb1b0_0
pywin32 303 py39hb82d6ee_0 conda-forge
pywin32-ctypes 0.2.0 py39hcbf5309_1005 conda-forge
qt 5.9.7 vc14h73c81de_0 [vc14] anaconda
setuptools 61.2.0 py39haa95532_0
sip 4.19.13 py39hd77b12b_0 anaconda
six 1.16.0 pyhd3eb1b0_1
sqlite 3.38.3 h2bbff1b_0
tzdata 2022a hda174b7_0
vc 14.2 h21ff451_1
vs2015_runtime 14.27.29016 h5e58377_2
wheel 0.37.1 pyhd3eb1b0_0
wincertstore 0.2 py39haa95532_2
zlib 1.2.11 vc14h1cdd9ab_1 [vc14] anaconda
zstandard 0.17.0 py39hb82d6ee_1 conda-forge
当我运行pyinstaller没有-w
选项时,我得到以下内容:
Traceback (most recent call last):
File "main.py", line 8, in <module>
File "PyInstallerloaderpyimod03_importers.py", line 495, in exec_module
File "client.py", line 4, in <module>
ModuleNotFoundError: No module named 'PyQt5.QtNetwork'
[19256] Failed to execute script 'main' due to unhandled exception!
client.py
的第4行如下:
from PyQt5 import QtCore, QtWebSockets
我没有正确导入/安装pyqt吗?我在conda激活我的环境后运行pyinstaller。我似乎无法在pyinstaller的其他地方找到这个特定的错误。通常是找不到整个pyqt5模块。
我不知道为什么这会起作用,但它确实适合我的情况:
pyinstaller --onefile -w --hidden-import PyQt5.QtNetwork .main.py
我引用这个SO: PyQt5: ModuleNotFoundError: No module named 'PyQt5'