spyder 4.0.1 的 Matplotlib 问题

Posted

技术标签:

【中文标题】spyder 4.0.1 的 Matplotlib 问题【英文标题】:Mtaplotlib issue with spyder 4.0.1 【发布时间】:2020-09-08 21:27:27 【问题描述】:

我已将我的 spyder 升级到 4.0.1,但现在我在使用 matplotlib 时遇到此错误。错误:

AttributeError: 模块 'sip' 没有属性 'setapi'

完全错误:

注意:设置 Matplotlib 后端时出现以下错误!!

Traceback(最近一次调用最后一次): _set_mpl_backend 中的文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\spyder_kernels\console\kernel.py”,第 568 行 get_ipython().run_line_magic(魔术,后端) 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\IPython\core\interactiveshell.py”,第 2317 行,在 run_line_magic 结果 = fn(*args, **kwargs) 文件“”,第 2 行,在 matplotlib 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\IPython\core\magic.py”,第 187 行,在 调用 = lambda f, *a, **k: f(*a, **k) 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\IPython\core\magics\pylab.py”,第 99 行,在 matplotlib gui, backend = self.shell.enable_matplotlib(args.gui.lower() if isinstance(args.gui, str) else args.gui) 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\IPython\core\interactiveshell.py”,第 3419 行,在 enable_matplotlib pt.activate_matplotlib(后端) 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\IPython\core\pylabtools.py”,第 320 行,在 activate_matplotlib 从 matplotlib 导入 pyplot 作为 plt 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\pyplot.py”,第 2282 行,在 switch_backend(rcParams["backend"]) 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\pyplot.py”,第 221 行,在 switch_backend backend_mod = importlib.import_module(backend_name) 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\importlib__init__.py”,第 127 行,在 import_module return _bootstrap._gcd_import(name[level:], package, level) 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\backends\backend_qt5agg.py”,第 11 行,在 从 .backend_qt5 导入( 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\backends\backend_qt5.py”,第 15 行,在 导入 matplotlib.backends.qt_editor.figureoptions 作为 figureoptions 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\backends\qt_editor\figureoptions.py”,第 12 行,在 从 matplotlib.backends.qt_compat 导入 QtGui 文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\backends\qt_compat.py”,第 163 行,在 _设置() _setup_pyqt4 中的文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\backends\qt_compat.py”,第 124 行 _setup_pyqt4_internal(api=2) _setup_pyqt4_internal 中的文件“C:\Users\premp\anaconda3\envs\tfcuda\lib\site-packages\matplotlib\backends\qt_compat.py”,第 107 行 sip.setapi(_sip_api, api) AttributeError: 模块 'sip' 没有属性 'setapi'

目前我有 matplotlib 3.2.1,我尝试过降级,还尝试将设置从自动更改为内联。但无法弄清楚问题所在。这是一个错误吗?

【问题讨论】:

【参考方案1】:

据我了解,您是在虚拟环境中运行命令。

在我的虚拟环境中运行命令时,我在 Windows 10 上遇到了与 matplotlib 3.3.2 类似的问题:

(base) (venv) C:\Users\Samtha\Documents\automation_tool>python -c "import matplotlib.pyplot as plt"

它给出了 AttributeError: module 'sip' has no attribute 'setapi'。

在这里尝试了提到的解决方案:enter link description here

(base) (venv) C:\Users\Samtha\Documents\automation_tool> python -c "import matplotlib;matplotlib.use('TkAgg');import matplotlib.pyplot as plt"

现在可以使用了。

【讨论】:

它也适用于我。您知道为什么会发生这种情况以及是否会由任何一方永久解决此问题吗?【参考方案2】:

我遇到了类似的问题,并通过将 sip 模块添加到我的 anaconda 环境来解决它。

【讨论】:

这似乎是一个愚蠢的修复,但它对我有用,没有其他解决方案中提到的 rc 文件中的所有黑客攻击。

以上是关于spyder 4.0.1 的 Matplotlib 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 matplotlib - spyder 中的默认绘图颜色? [复制]

matplotlib 中的动画在 spyder 中不起作用

spyder控制台中的Matplotlib后端错误?

使用 matplotlib 在 Spyder 中进行交互式(?)绘图

Matplotlib pyplot 冻结,除了 Spyder 上的白屏外不显示任何内容

如何在 Spyder/IPython/matplotlib 中再次获得交互式绘图?