%matplotlib qt 无效

3

Python 2.7.12 |Anaconda 4.2.0 (64-bit)| Spyder 3.0.1| IPython 5.1.0(运行在Windows操作系统)

当需要在新窗口中请求绘图时:

%matplotlib qt

我遇到了一个错误:
Traceback (most recent call last):

  File "<ipython-input-2-6ad73d0e50c7>", line 1, in <module>
    get_ipython().magic(u'matplotlib qt')

  File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2158, in magic
    return self.run_line_magic(magic_name, magic_arg_s)

  File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2079, in run_line_magic
    result = fn(*args,**kwargs)

  File "<decorator-gen-105>", line 2, in matplotlib

  File "C:\Anaconda2\lib\site-packages\IPython\core\magic.py", line 188, in <lambda>
    call = lambda f, *a, **k: f(*a, **k)

  File "C:\Anaconda2\lib\site-packages\IPython\core\magics\pylab.py", line 100, in matplotlib
    gui, backend = self.shell.enable_matplotlib(args.gui)

  File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2947, in enable_matplotlib
    pt.activate_matplotlib(backend)

  File "C:\Anaconda2\lib\site-packages\IPython\core\pylabtools.py", line 295, in activate_matplotlib
    matplotlib.pyplot.switch_backend(backend)

  File "C:\Anaconda2\lib\site-packages\matplotlib\pyplot.py", line 232, in switch_backend
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\backend_qt4agg.py", line 18, in <module>
    from .backend_qt5agg import FigureCanvasQTAggBase as _FigureCanvasQTAggBase

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\backend_qt5agg.py", line 16, in <module>
    from .backend_qt5 import QtCore

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\backend_qt5.py", line 31, in <module>
    from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, __version__

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\qt_compat.py", line 137, in <module>
    from PyQt4 import QtCore, QtGui

ImportError: No module named PyQt4
4个回答

4

我通过将 matplotlib 版本从 matplotlib-1.5.3 升级到 matplotlib-2.2.2,解决了这个问题。

pip install matplotlib --upgrade

4
我认为您的问题是由于仍然设置为pyqt4(或pyside)的QT_API环境变量引起的。例如,通过在Python提示符中键入import os; print(os.environ.get('QT_API'))来检查此项。
如果是这种情况,您需要删除它或将其设置为pyqt5。如果不知道如何在Windows下设置环境变量,请搜索谷歌了解如何设置环境变量。

你太棒了!!我使用了“import os; print(os.environ.get('QT_API'))”这段代码,然后我获得了pyqt5。接着,我进入“工具”->“首选项”->“Ipython控制台”->“图形”,并选择了Qt5后端,在重新启动spyder之后,问题迎刃而解。谢谢!!! - Alvar Escriva-Bou

4

我使用了import os; print(os.environ.get('QT_API')),然后我得到了pyqt5。然后,我去工具 -> 首选项 -> Ipython控制台 -> 图形,并选择了Qt5后端,在重新启动spyder后,问题解决了。谢谢!!!


1
如果您想在Spyder中打开新窗口显示图表,则不需要使用%matplotlib qt。相反,进入Spyder的工具首选项,然后在首选项中点击IPython控制台。在IPython控制台中点击图形选项卡,然后在图形后端下拉菜单中将Inline更改为QT

谢谢,我也尝试了但是还是出现了同样的错误:ImportError: No module named PyQt4 - Alvar Escriva-Bou
@AlvarEscriva-Bou 请尝试不使用 %matplotlib qt - Joe T. Boka
@AlvarEscriva-Bou 但是,你的错误信息与新窗口无关,而是与导入PyQt4有关。在Spyder中打开新窗口问题应该可以使用我回答中的解决方案来解决。 - Joe T. Boka
同样的事情在这里 :( - Alvar Escriva-Bou
@AlvarEscriva-Bou 尝试不要导入 PyQt4 - Joe T. Boka
显示剩余2条评论

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