没有名为 PyQt5.sip 的模块

Posted

技术标签:

【中文标题】没有名为 PyQt5.sip 的模块【英文标题】:No module named PyQt5.sip 【发布时间】:2019-07-31 21:27:40 【问题描述】:

升级到 python-pyqt5 5.12-2 后,当我尝试从 QtWidgets 导入时收到此错误

from PyQt5.QtWidgets import * 

错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'PyQt5.sip'

知道如何解决这个问题吗?

【问题讨论】:

python - pyuic5 - ModuleNotFoundError: No module named PyQt5.sip - Stack Overflow? pyqt5的当前版本是5.12,不是5.12.2。您在哪个平台上,以及您究竟是如何“升级”的? 对不起,我的意思是 5.12-2(我刚刚编辑了问题)我在 Manjaro Linux (KDE) 上。我刚刚安装了系统并从 pacman 执行了全面升级。我已经尝试删除并重新安装 python-pyqt5 但这并没有解决问题。 (编辑)另外,因为像 Spyder3 这样的更新应用程序不再工作(同样的错误) @Holderekt 安装:sudo pacman -S python-sip python-pyqt5 python-sip-pyqt5 已经试过了,还是报错 【参考方案1】:

原因是backward incompatible change in PyQt-5.11

geoptics fix 适用于旧版本和新版本:

try:
    # new location for sip
    # https://www.riverbankcomputing.com/static/Docs/PyQt5/incompatibilities.html#pyqt-v5-11
    from PyQt5 import sip
except ImportError:
    import sip

【讨论】:

【参考方案2】:

这里建议pyuic5 - ModuleNotFoundError: No module named PyQt5.sip

尝试卸载并重新安装所有 PyQt 相关库:

pip uninstall PyQt5
pip uninstall PyQt5-sip
pip uninstall PyQtWebEngine

然后重新安装它们,这将修复:

ModuleNotFoundError: No module named 'PyQt5.sip'
ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'

PPS.:如果您在卸载库时遇到问题,请转到您的 Python 文件夹,例如 C:\Users\&lt;USERNAME&gt;\AppData\Local\Programs\Python\Python&lt;PYTHON-VERSION&gt;\Lib\site-packages 并手动删除 PyQt 文件夹,它们会卸载所有内容并重新安装(确保您拥有最新的 Python 版本并升级您的 pip也)

【讨论】:

【参考方案3】:

如果您使用 make 文件从源代码构建 sip 和 PyQt5,请务必检查 PyQt5 install docs。特别是,

注意

在构建 PyQt5 v5.11 或更高版本时,您必须配置 SIP 以创建一个 sip 模块的私有副本,使用类似于 以下:

python configure.py --sip-module PyQt5.sip

如果您已经安装了 SIP,并且只想构建和 安装模块的私有副本,然后添加 --no-tools 选项。

【讨论】:

【参考方案4】:

您应该将 PyQt5.sip 添加到隐藏的导入中;这应该可以解决问题。

【讨论】:

【参考方案5】:

我修复了这个问题

升级pyqt5版本5.15.0时出现此问题

当我恢复到以前的版本时没有问题。

我有 python -V: 3.7.4

PYQT5 5.14.1 和 PYSIDE 5.14.1 工作正常

【讨论】:

【参考方案6】:

除了 Tadeu (https://***.com/a/58880976/12455023) 提供的答案之外,我还建议检查您的库的版本以确保它们匹配。

使用pip show &lt;library_name&gt;

这将帮助您确保之前的安装不会与您当前的安装发生冲突。

使用 PyQt5PyQt5-sipPyQtWebEngine 代替 library_name。如果系统中存在它们中的任何一个,则使用pip uninstall &lt;library_name&gt;==&lt;version_number&gt; 删除该库。

一旦您确定没有这些库的其他版本,您就可以重新安装该库的首选版本。

【讨论】:

以上是关于没有名为 PyQt5.sip 的模块的主要内容,如果未能解决你的问题,请参考以下文章

即使我刚刚安装它,也没有名为“PyQt5.sip”的模块

没有名为“硒”的模块

macOS 上的“ModuleNotFoundError:没有名为 'dbus' 的模块”

没有名为“email.FeedParser”的模块

ModuleNotFoundError:没有名为“推理”的模块

为啥 ImportError:没有名为 lightgbm 的模块