2017-12-05 8 views
0
내가하기 matplotlib QT에서 ipython/스파이더 명령 %를 사용하여 새 창에서 그래픽을 열하려고하지만 오류를

%는하기 matplotlib QT 오류로 종료 - 대신 PyQt4의 PyQt5를 호출

%matplotlib qt 
Traceback (most recent call last): 

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

File "/usr/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2160, in magic 
return self.run_line_magic(magic_name, magic_arg_s) 

File "/usr/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2081, in run_line_magic 
result = fn(*args,**kwargs) 

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

File "/usr/lib/python2.7/site-packages/IPython/core/magic.py", line 188, in <lambda> 
call = lambda f, *a, **k: f(*a, **k) 

File "/usr/lib/python2.7/site-packages/IPython/core/magics/pylab.py", line 100, in matplotlib 
gui, backend = self.shell.enable_matplotlib(args.gui) 

File "/usr/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2950, in enable_matplotlib 
pt.activate_matplotlib(backend) 

File "/usr/lib/python2.7/site-packages/IPython/core/pylabtools.py", line 309, in activate_matplotlib 
matplotlib.pyplot.switch_backend(backend) 

File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 231, in switch_backend 
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() 

File "/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.py", line 60, in pylab_setup 
[backend_name], 0) 

File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 16, in <module> 
from .backend_qt5 import (

File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_qt5.py", line 18, in <module> 
import matplotlib.backends.qt_editor.figureoptions as figureoptions 

File "/usr/lib64/python2.7/site-packages/matplotlib/backends/qt_editor/figureoptions.py", line 20, in <module> 
import matplotlib.backends.qt_editor.formlayout as formlayout 

File "/usr/lib64/python2.7/site-packages/matplotlib/backends/qt_editor/formlayout.py", line 56, in <module> 
from matplotlib.backends.qt_compat import QtGui, QtWidgets, QtCore 

File "/usr/lib64/python2.7/site-packages/matplotlib/backends/qt_compat.py", line 137, in <module> 
from PyQt5 import QtCore, QtGui, QtWidgets 

ImportError: No module named PyQt5 
다음 보여줍니다

저는 PyQt5를 설치하지 않았지만, CentOS 7.4에 PyQt4를 설치했습니다. 또한 파일 matplotlibrc (/usr/lib64/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc가) 백엔드를 변경하려면 파일을 수정하고 다음과 같이

# If you omit this parameter, it will always default to "Agg", which is a 
# non-interactive backend. 
backend  : Qt4Agg 

# If you are using the Qt4Agg backend, you can choose here 
# to use the PyQt4 bindings or the newer PySide bindings to 
# the underlying Qt4 toolkit. 
backend.qt4 : PyQt4  # PyQt4 | PySide 

을하지만 여전히 그것은 PyQt5 호출합니다. "% matplotlib qt"명령을 실행 한 후 백엔드가 Qt5Agg로 다시 변경되었습니다 (matplotlib.rcParams [ 'backend'] 인쇄). matplotlibrc에 Qt4Agg를 썼습니다.

참고 : - 나는 IPython 5 configuration page을 참조하시기 바랍니다 또한

Warning: Cannot change to a different GUI toolkit: qt4. Using qt instead. 

답변

0

"%의하기 matplotlib의 QT4"를 시도했다. IPython 5와 Python 2.7을 설치하지 않았으므로 정확한 구성 코드를 제공 할 수 없습니다. 하지만 IPython이 Qt4를 사용하게하려면 다음 단계를 따라야합니다.

  1. this 페이지와 같이 구성 파일을 만듭니다.
  2. 변경해야하는 구성 목록은 this 페이지에 있습니다. 그냥 목록을 살펴보고 qt4와 qt5 사이의 옵션을 볼 때마다 1 단계에서 만든 구성 파일에서 qt4 값을 설정하면됩니다.

희망이 있기를 바랍니다.

+0

감사합니다. – Ras