Python %matplotlib qt不工作

Python %matplotlib qt不工作,python,matplotlib,pyqt4,Python,Matplotlib,Pyqt4,Python 2.7.12 | Anaconda 4.2.0(64位)| 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().ma

Python 2.7.12 | Anaconda 4.2.0(64位)| 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
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
get_ipython().magic(u'matplotlib qt')
文件“C:\Anaconda2\lib\site packages\IPython\core\interactiveshell.py”,第2158行,magic
返回self.run\u line\u magic(magic\u name,magic\u arg\s)
文件“C:\Anaconda2\lib\site packages\IPython\core\interactiveshell.py”,第2079行,在run\u line\u magic中
结果=fn(*args,**kwargs)
matplotlib中第2行的文件“”
文件“C:\Anaconda2\lib\site packages\IPython\core\magic.py”,第188行,在
调用=λf,*a,**k:f(*a,**k)
matplotlib中的文件“C:\Anaconda2\lib\site packages\IPython\core\magics\pylab.py”,第100行
gui,backend=self.shell.enable_matplotlib(args.gui)
文件“C:\Anaconda2\lib\site packages\IPython\core\interactiveshell.py”,第2947行,在enable_matplotlib中
pt.activate_matplotlib(后端)
文件“C:\Anaconda2\lib\site packages\IPython\core\pylabtools.py”,第295行,在activate_matplotlib中
matplotlib.pyplot.switch_后端(后端)
文件“C:\Anaconda2\lib\site packages\matplotlib\pyplot.py”,第232行,在交换机后端
_后端模块、新图形管理器、绘图(如果交互式),显示=pylab\u设置()
pylab_设置中的第32行文件“C:\Anaconda2\lib\site packages\matplotlib\backends\\uuuu init\uuuu.py”
全局变量(),局部变量(),[backend_name],0)
文件“C:\Anaconda2\lib\site packages\matplotlib\backends\backend_qt4agg.py”,第18行,在
from.backend_qt5agg导入FigureCanvasqtagbase as_FigureCanvasqtagbase
文件“C:\Anaconda2\lib\site packages\matplotlib\backends\backend_qt5agg.py”,第16行,在
from.backend_qt5导入QtCore
文件“C:\Anaconda2\lib\site packages\matplotlib\backends\backend_qt5.py”,第31行,在
从.qt\u compat导入QtCore、QtGui、qtwidget、\u getSaveFileName、\uu版本__
文件“C:\Anaconda2\lib\site packages\matplotlib\backends\qt\u compat.py”,第137行,在
从PyQt4导入QtCore、QtGui
ImportError:没有名为PyQt4的模块

如果您希望在Spyder的新窗口中打印,则不需要
%matplotlib qt


相反,请转到Spyder中的
工具
首选项
,然后在
首选项
中单击
IPython控制台
。在
ipythonconsol
中单击选项卡
Graphics
,然后在
Graphics Backend
下拉列表中,将
Inline
更改为
QT

我认为问题是由
QT_API
环境变量仍然设置为
pyqt4
(或
pyside
)引起的。例如,通过键入
importos来检查这一点;在Python提示符中打印(os.environ.get('QT_-API')


如果是这种情况,则需要将其删除或设置为
pyqt5
。如果您不知道如何在Windows下设置环境变量,请使用Google进行设置。

我使用了导入操作系统;打印(os.environ.get('QT_-API')),然后我获得了pyqt5。然后,我转到工具->首选项->Ipython控制台->图形,选择了后端Qt5,重启spyder后,问题解决了。谢谢

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

pip install matplotlib --upgrade

谢谢,我也试过了,但同样的错误是:ImportError:没有名为的模块PyQt4@AlvarEscriva-Bou请在不使用
%matplotlib qt
@AlvarEscriva Bou的情况下重试,但是,您的错误消息与新窗口情况无关,它与导入
PyQt4
有关。Spyder上的新窗口问题中的绘图应该使用我的答案中的解决方案进行修复。这里的问题相同:(@AlvarEscriva Bou尝试不导入
PyQt4
You rock!!我使用了导入操作系统;打印(os.environ.get('QT_API')),然后我得到了pyqt5。然后,我去了工具->首选项->Ipython控制台->图形,我选择了后端Qt5,重启spyder后,瞧,问题解决了。谢谢!!!!