簡體   English   中英

%matplotlib qt錯誤結束-調用PyQt5而不是PyQt4

[英]%matplotlib qt ends in error - calls PyQt5 instead of PyQt4

我正在嘗試在ipython / spyder中使用命令%matplotlib qt在新窗口中打開圖形,但顯示以下錯誤

%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”后,即使我在matplotlibrc中編寫了Qt4Agg,后端也變回了Qt5Agg(打印matplotlib.rcParams ['backend'])。

注意:-我也嘗試過“%matplotlib qt4”

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

請參考IPython 5配置頁面 我沒有設置IPython 5和Python 2.7,所以我無法為您提供確切的配置代碼。 但是為了使IPython使用Qt4,您必須遵循以下步驟:

  1. 創建配置文件,例如在頁面中提供。
  2. 頁面上提供了您需要更改的配置列表。 只需瀏覽列表,然后在任何地方看到qt4和qt5之間的選項,只需在您在步驟1中創建的配置文件中將這些值設置為qt4。

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM