Matplotlib - 模块'sip'没有属性'setapi'。

23

我刚刚使用所有Python扩展程序设置了VS Code。通过Anaconda,Python版本为3.8.3。解释器是venv。当我运行这段代码时:

import matplotlib.pyplot as plt

出现错误 -

Exception has occurred: AttributeError
module 'sip' has no attribute 'setapi'
  File "C:\test.py", line 145, in <module>
    import matplotlib.pyplot as plt

我已经尝试卸载和重新安装matplotlib,但没有用。

6个回答

29

这对我有效。

python -m pip install matplotlib==3.2

我遇到了同样的问题。这是由于版本不同造成的。这解决了我的问题。谢谢@nuno。 - Mohit Singh
这个有效。谢谢。 - undefined

10

使用Matplotlib 3.3 版本和IPython存在不兼容问题。目前,您可以通过安装Matplotlib 3.2来解决该问题。


感谢您的建议。根据另一篇帖子,Anaconda发行版不支持Python 3.2。 https://stackoverflow.com/a/50108544/5560837 - Egret
1
我的意思是 Matplotlib 版本 3.2,而不是 Python 3.2。我已经编辑了答案来澄清这一点。 - Muhamad Sohaib Arif
对我来说,matplotlib==3.3.4版本有问题,将matplotlib降级到3.2版本后,问题得到解决。 - Rushikesh
1
参考一下,我在VSCode上也遇到了这个问题,但是在同一个anaconda环境中使用Spyder时,%matplotlib qt5可以正常工作。因此,这不是纯粹的ipython问题,而是ipython和VSCode共同工作的方式中的某些问题。 - alexandre iolov

8

我也遇到同样的问题。我使用的是PyCharm。安装PyQt5解决了我的问题。


pip install PyQt5 - 对我有效。Win10。Matplotlib 3.4.1Py 3.8.5 - pds

2
我也遇到了同样的问题,但以上回答都没有解决我的问题。经过一些试错,发现pyqt和qt引起了我的问题。我知道你正在使用venv,但如果您不介意使用Anaconda,则以下环境应该适合您:
conda create -n matplotlib python==3.8.3 matplotlib==3.3.4 pyqt==5.9.2 qt==5.9.7
我在Windows 10上使用python==3.8.3和python==3.7.10测试了这个解决方案。

1

PySide2是官方支持的Qt(v5) Python包,由Qt公司提供官方支持。

在使用matplotlib和Jupyter/IPython时,请安装此模块。

pip install pyside2

还有PySide6,它是Qt(v6)的包。

不要问我为什么pyside2是为qt5而设计的...


1
我重新安装了最新版本的matplotlib,安装成功。
pip uninstall matplotlib
pip install matplotlib

这将把matplotlib版本从3.3.4升级到3.4.2。
*我正在使用Python 3.7.6,在虚拟环境中,Windows操作系统。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接