pyinstaller ModuleNotFoundError:没有名为'PyQt5.QtNetwork'的模块



我使用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'

最新更新