dan*_*n_g 8 python matplotlib pyqt4 pyqt5
我正在尝试编写一个在其中嵌入matplotlib图的PyQt5应用程序.但是,我有一个令人抓狂的时间,如果我安装matplotlib PyQt5由于PyQt4的干扰而中断.这可以在以下错误中看到:
In [2]: from PyQt5 import QtCore, QtGui, QtWidgets
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-2-43848d5bd21e> in <module>()
----> 1 from PyQt5 import QtCore, QtGui, QtWidgets
RuntimeError: the PyQt5.QtCore and PyQt4.QtCore modules both wrap the QObject class
Run Code Online (Sandbox Code Playgroud)
如果我删除PyQt4(并重新安装PyQt5,因为删除PyQt4删除了sip)然后我有这个问题:
In [1]: import matplotlib.backends.backend_qt5agg
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-6d2c21e1d629> in <module>()
----> 1 import matplotlib.backends.backend_qt5agg
C:\Anaconda3\lib\site-packages\matplotlib\backends\backend_qt5agg.py in <module>()
16
17 from .backend_agg import FigureCanvasAgg
---> 18 from .backend_qt5 import QtCore
19 from .backend_qt5 import QtGui
20 from .backend_qt5 import FigureManagerQT
C:\Anaconda3\lib\site-packages\matplotlib\backends\backend_qt5.py in <module>()
29 figureoptions = None
30
---> 31 from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, __version__
32 from matplotlib.backends.qt_editor.formsubplottool import UiSubplotTool
33
C:\Anaconda3\lib\site-packages\matplotlib\backends\qt_compat.py in <module>()
89 if QT_API in [QT_API_PYQT, QT_API_PYQTv2]: # PyQt4 API
90
---> 91 from PyQt4 import QtCore, QtGui
92
93 try:
ImportError: cannot import name 'QtCore'
Run Code Online (Sandbox Code Playgroud)
我已多次经历这个循环,从不同来源安装每个循环.我正在使用Python 3.4的Anaconda发行版,我已经卸载/重新安装了一次.
我一定是做错了什么,但老实说我不知道它是什么.
任何援助将不胜感激
小智 11
由于matplotlib依赖于PyQt4,因此需要强制Matplotlib使用PyQt5后端.像这样:
import matplotlib
matplotlib.use("Qt5Agg")
Run Code Online (Sandbox Code Playgroud)
首次导入pyplot 之前必须调用此函数; 或者,如果您不使用pyplot,则必须在导入matplotlib.backends之前调用它.