Matplotlib无法导入PyQt4、PyQt5或PySide。

3
我正在使用Canopy 2.1.3发行版(在Ubuntu 16.04上),您可能知道它包含matplotlib包。只需在Canopy的shell中运行 import matplotlib.pyplot as plt, 我会遇到如下错误:

ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5, or PySide package to be installed, but it was not found.

我已经使用Synaptic安装了这三个软件包,但问题仍然存在。这是与环境变量相关吗?或者,是因为Canopy的Python 3.5和Ubuntu的Python 2.7相冲突?
编辑:我最终通过从Canopy的包管理器安装PyQt来解决问题。

1
问题和答案应该对未来的读者有用。因此,我邀请您提供更详细的完整答案,而不是在问题中给出一个简短的回答,这样将来遇到相同问题的其他人也可以从中受益。 - ImportanceOfBeingErnest
2个回答

6
很可能 matplotlib.pyplot 的默认后端设置为 qt
我对 canopy 的经验很少,但应该可以将默认值更改为其他后端;也许有人能告诉你如何更改,或者你可以自己找到它。
同时,您可以尝试在所有其他 matplotlib 导入之前添加以下内容:
import matplotlib
matplotlib.use('TkAgg')

2

从用户指南中:

已知问题:在运行Python 3的Canopy中,必须显式设置GUI后端

如果您要求matplotlib显示图形,或者以其他方式运行创建GUI窗口的Python代码,默认情况下,您将得到一个错误回溯,最后以ImportError:No module named 'PyQt4'结束。

解决方案是在Canopy包管理器中安装PyQt(其为GPL许可证),或者使用Canopy首选项菜单的Python标签来指定TK PyLab后端用于创建GUI。有关详细信息,请参见'Python 3 in Canopy 2 - ‘No module named PyQt4’ error'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接