matplotlib 不导入 PyQt4、PyQt5 或 PySide
Posted
技术标签:
【中文标题】matplotlib 不导入 PyQt4、PyQt5 或 PySide【英文标题】:matplotlib does not import PyQt4, PyQt5 or PySide 【发布时间】:2017-10-28 19:50:02 【问题描述】:我正在使用 Canopy 2.1.3 发行版(在 Ubuntu 16.04 上),您可能知道它包含 matplotlib 包。只需在 Canopy 的 shell import matplotlib.pyplot as plt
中运行就可以了
ImportError:基于 Matplotlib qt 的后端需要外部 PyQt4、PyQt5、 或者 PySide 包要安装,但是没有找到。
我已使用 Synaptic 安装了所有三个软件包,但问题仍然存在。 这可能与环境变量有关吗?还是因为 Canopy 的 Python 3.5 和 Ubuntu 的 Python 2.7 冲突?
编辑: 我终于通过从 Canopy 的包管理器安装 PyQt 来使用它。
【问题讨论】:
问题和答案应该对未来的读者有用。因此,我会邀请您而不是在问题中给出一句话的答案,而是提供包含更多细节的完整答案,以便将来遇到相同问题的其他人可以从中受益。 【参考方案1】:matplotlib.pyplot
的默认后端很可能设置为qt
。
我对canopy的经验很少,但是应该可以将默认更改为另一个后端;也许其他人会告诉你怎么做,或者你可以自己找到。
与此同时,您可以尝试将其添加到所有其他 matplotlib 导入之上:
import matplotlib
matplotlib.use('TkAgg')
【讨论】:
【参考方案2】:来自用户指南:
Known Issue: In Canopy running Python 3, GUI backend must be explicitly set
如果您要求 matplotlib 显示绘图,或者以其他方式运行创建 GUI 窗口的 Python 代码,默认情况下,您将收到以以下结尾的错误回溯:ImportError: No module named 'PyQt4'
解决方案是在 Canopy 包管理器中安装 PyQt(已获得 GPL 许可),或者使用 Canopy Preference 菜单的 Python 选项卡来指定 TK PyLab 后端以创建 GUI。详情见“Python 3 in Canopy 2 - ‘No module named PyQt4’ error”
【讨论】:
以上是关于matplotlib 不导入 PyQt4、PyQt5 或 PySide的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5 结合 matplotlib 时,如何显示其 NavigationToolbar
PyQt4/matplotlib:如何修复 MatplotlibDeprecationWarning 由于 axes.hold()