没有名为 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\<USERNAME>\AppData\Local\Programs\Python\Python<PYTHON-VERSION>\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 <library_name>
这将帮助您确保之前的安装不会与您当前的安装发生冲突。
使用 PyQt5
、PyQt5-sip
、PyQtWebEngine
代替 library_name。如果系统中存在它们中的任何一个,则使用pip uninstall <library_name>==<version_number>
删除该库。
一旦您确定没有这些库的其他版本,您就可以重新安装该库的首选版本。
【讨论】:
以上是关于没有名为 PyQt5.sip 的模块的主要内容,如果未能解决你的问题,请参考以下文章
macOS 上的“ModuleNotFoundError:没有名为 'dbus' 的模块”