没有名为PyQt5.sip的模块

时间:2019-03-10 11:12:06

标签: python python-3.x qt pyqt pyqt5

升级到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'

关于如何解决此问题的任何想法?

6 个答案:

答案 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>

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

使用 PyQt5PyQt5-sipPyQtWebEngine 代替 library_name。如果系统中存在其中任何一个,则使用 pip uninstall <library_name>==<version_number> 删除该库。

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