升级到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'
关于如何解决此问题的任何想法?
答案 0 :(得分:3)
如果要使用make文件从源代码构建sip和PyQt5,请确保检查PyQt5安装docs。特别是
注意
在构建PyQt5 v5.11或更高版本时,您必须配置SIP以创建 sip模块的私有副本,使用类似于以下内容的命令行 以下:
python configure.py --sip模块PyQt5.sip
如果您已经安装了SIP,并且只想构建和 安装模块的私有副本,然后添加--no-tools选项。
答案 1 :(得分:0)
您应该将PyQt5.sip添加到隐藏的导入中;应该可以解决问题。
答案 2 :(得分:0)
原因是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
答案 3 :(得分:0)
如此处的建议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 。:如果在卸载库时遇到问题,请转到C:\Users\<USERNAME>\AppData\Local\Programs\Python\Python<PYTHON-VERSION>\Lib\site-packages
之类的Python文件夹并手动删除PyQt文件夹,它们会卸载所有内容并重新安装(确保您拥有最新的Python版本并已升级您的点子也是如此)
答案 4 :(得分:0)
我修复了这个问题
升级pyqt5版本5.15.0时发生此问题
恢复到以前的版本时没有问题。
我有 python -V:3.7.4
PYQT5 5.14.1和PYSIDE 5.14.1正常工作
答案 5 :(得分:0)
除了 Tadeu (https://stackoverflow.com/a/58880976/12455023) 提供的答案之外,我还建议检查您的库的版本以确保它们匹配。
使用pip show <library_name>
这将帮助您确保之前的安装不会与您当前的安装发生冲突。
使用 PyQt5
、PyQt5-sip
、PyQtWebEngine
代替 library_name。如果系统中存在其中任何一个,则使用 pip uninstall <library_name>==<version_number>
删除该库。
一旦确定没有这些库的其他版本,您就可以重新安装该库的首选版本。