【发布时间】:2016-05-30 02:25:42
【问题描述】:
我第一次遇到this question 的答案,在那里我发现我需要安装自己的后端框架。由于答案提到了 PyQt4,我选择了它。按照文档中的链接,我最终从here 下载了 SIP(PyQt4 的先决条件)和 PyQt4。最后,在我的代码中,我有:
import matplotlib
matplotlib.use('Qt4agg') # need to call use() before importing plt
import matplotlib.pyplot as plt
但是我仍然收到此错误:
Traceback(最近一次调用最后一次): 文件“.../venv/lib/python3.5/site-packages/matplotlib/backends/qt_compat.py”,第 159 行,在 从 PySide 导入 QtCore、QtGui、version、version_info ImportError:没有名为“PySide”的模块
在处理上述异常的过程中,又发生了一个异常:
Traceback(最近一次调用最后一次):
文件“.../program.py”,第 7 行,在 将 matplotlib.pyplot 导入为 plt 文件“.../venv/lib/python3.5/site-packages/matplotlib/pyplot.py”,第 114 行, 在 _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
文件 ".../venv/lib/python3.5/site-packages/matplotlib/backends/init.py", 第 32 行,在 pylab_setup 中 globals(),locals(),[backend_name],0)
文件 “.../venv/lib/python3.5/site-packages/matplotlib/backends/backend_qt4agg.py”, 第 18 行,在 从 .backend_qt5agg 导入 FigureCanvasQTAggBase 作为 _FigureCanvasQTAggBase
文件 “.../venv/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py”, 第 15 行,在 从 .backend_qt5 导入 QtCore
文件 “.../venv/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py”, 第 31 行,在 from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, version
文件 “.../venv/lib/python3.5/site-packages/matplotlib/backends/qt_compat.py”, 第 162 行,在 “基于 Matplotlib qt 的后端需要外部 PyQt4、PyQt5、\n” ImportError:基于 Matplotlib qt 的后端需要外部 PyQt4, PyQt5,或者PySide包要安装,但是没有找到。
以前有人经历过吗?关于从这里去哪里的任何调试建议或帮助?
编辑:我会补充一点,尝试从我的虚拟环境中尝试 import PyQt4 是可行的,所以我不确定为什么 matplotlib 找不到它...
EDIT2:不确定是否重要,但我正在使用 PyCharm
【问题讨论】:
-
“基于 Matplotlib qt 的后端需要安装外部 PyQt4、PyQt5 或 PySide 包,但未找到。”您需要安装 Qt 框架,或者使用不同的后端(
TkAgg通常可以使用)。 -
@Evert 我已经安装了 PyQt4 (Qt4Agg) 但似乎找不到它。我可以在 python 解释器中很好地导入它,所以你能想到我忘记做的额外事情吗?
-
我误解了(或误读了,可能)。你的 matplotlib 安装的是什么版本?可以试试升级吗?
-
微妙,但尝试在后端名称中使用额外的大写:
matplotlib.use('Qt4Agg')(大写 A),而不是使用Qt4agg。 -
@Evert 我有 matplotlib 1.5.1,Qt4Agg 也不起作用
标签: python matplotlib scikit-learn pyqt4 virtualenv