Python 3.6.x PyInstaller 报错"No module named 'PyQt5.sip'"

Python 3.6.x PyInstaller gives error "No module named 'PyQt5.sip'"

我开发了一些在 Python 3.5.4 上运行良好的程序,但是由于一些关于 win32 的错误让我转到 Python 3.6.4,但是当我构建我的项目时pyinstaller,我得到:

C:\Users\User\Desktop\dist\mycommentator>mycommentator.exe
Traceback (most recent call last):
  File "mycommentator.py", line 6, in <module>
  File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module
    module = loader.load_module(fullname)
ModuleNotFoundError: No module named 'PyQt5.sip'
[1532] Failed to execute script mycommentator

我试图重新安装python,所以我安装了Python 3.6.4/Python 3.6.5,我也遇到了这个错误。 无论我在PyQt5中构建什么代码,每次都出现这个错误。

我也试过将sip.pyd移动到项目文件夹,但还是报错。 我也试过 pip install --upgrade sip,但没有用。 我还尝试安装开发版的 pyinstaller,但也没有帮助。

我遇到了同样的问题,这显然是一个已知错误,因为 sip 现在正在单独安装。

https://github.com/pyinstaller/pyinstaller/issues/3630

在创建安装程序时,我添加了以下行:

--hidden-import PyQt5.sip

这没问题。

我通过在主文件顶部添加以下代码解决了这个错误 (python3.10):

import PyQt5.sip

在此之前我尝试了隐藏导入(https://github.com/pyinstaller/pyinstaller/issues/5381)但没有修复:(