2016-11-13 73 views
1

Python 2.7.12 |Anaconda 4.2.0 (64-bit)| Spyder 3.0.1| IPython 5.1.0(在Windows上运行)%matplotlib QT不起作用

当通过在一个新的窗口,要求地块:

%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

如果您想要在Spyder的新窗口中绘制你的情节,你不需要%matplotlib qt

相反,去ToolsPreferences在Spyder的,然后在Preferences点击IPython consol。在IPython consol单击标签Graphics,然后在Graphics Backend下拉更改InlineQT

+0

谢谢,我也试过,但同样的错误:ImportError:没有名为PyQt4的模块 –

+0

@ AlvarEscriva-Bou尝试不使用'%matplotlib qt'。 –

+0

@ AlvarEscriva-Bou但是,你的错误信息不是关于新窗口的情况,它与导入'PyQt4'有关。在Spyder的新窗口中绘制问题应该使用我答案中的解决方案来解决。 –

3

我认为你的问题是由于有一个QT_API环境变量仍然设置为pyqt4(或pyside)造成的。例如,通过在Python提示符下键入import os; print(os.environ.get('QT_API'))来检查这一点。

如果是这种情况,您需要将其删除或将其设置为pyqt5。谷歌如何在Windows下设置环境变量,如果你不知道如何。

+0

你摇滚!!我用import os; print(os.environ.get('QT_API')),然后我得到了pyqt5,于是我去了Tools - > preferences - > Ipython控制台 - >图形和我选择的后端Qt5,并重新启动spyder后,瞧,问题解决。谢谢! –

3

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