当我使用 matplotlib.pyplot 时,python 3.6 中没有名为 PyQt4 的模块

Posted

技术标签:

【中文标题】当我使用 matplotlib.pyplot 时,python 3.6 中没有名为 PyQt4 的模块【英文标题】:No module named PyQt4 in python 3.6 when I use matplotlib.pyplot 【发布时间】:2017-09-18 14:28:49 【问题描述】:

当我在任何 python 3.6 程序中导入 matplotlib.pyplot 时,我收到以下错误:

$ python kernel1.py Traceback (most recent call last): File "kernel1.py", line 13, in <module> import matplotlib.pyplot as plt File "/home/atul/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py", line 115, in <module> _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() File "/home/atul/anaconda3/lib/python3.6/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup globals(),locals(),[backend_name],0) File "/home/atul/anaconda3/lib/python3.6/site-packages/matplotlib/backends/backend_qt5agg.py", line 16, in <module> from .backend_qt5 import QtCore File "/home/atul/anaconda3/lib/python3.6/site-packages/matplotlib/backends/backend_qt5.py", line 26, in <module> import matplotlib.backends.qt_editor.figureoptions as figureoptions File "/home/atul/anaconda3/lib/python3.6/site-packages/matplotlib/backends/qt_editor/figureoptions.py", line 20, in <module> import matplotlib.backends.qt_editor.formlayout as formlayout File "/home/atul/anaconda3/lib/python3.6/site-packages/matplotlib/backends/qt_editor/formlayout.py", line 56, in <module> from matplotlib.backends.qt_compat import QtGui, QtWidgets, QtCore File "/home/atul/anaconda3/lib/python3.6/site-packages/matplotlib/backends/qt_compat.py", line 137, in <module> from PyQt4 import QtCore, QtGui ModuleNotFoundError: No module named 'PyQt4'

但是,如果我使用 python 3.5,matplotlib.pyplot 可以完美运行。

我尝试过使用sudo apt-get install python-qt4。我仍然得到同样的错误。

我使用的是 Ubuntu 16.04。

【问题讨论】:

从错误信息中我看到你使用的是anaconda所以用apt-get安装pyqt4不起作用,你必须使用anaconda来安装pyqt4 阅读:***.com/questions/21637922/… 【参考方案1】:

你需要在相关环境的命令行中从PyQt5降级到PyQt4:

conda install pyqt=4

这也会降级其他软件包。如果这会在使用 Python 3.6 时给您带来其他问题,您可能需要考虑使用 PyQt5。

此外,Continuum 不支持 Python 3.6+ 的此版本。请查看this GitHub page 进行确认。

【讨论】:

【参考方案2】:

对于python 3.6(因为我的电脑里有这个),你去命令行,然后输入:

conda install -c anaconda pyqt=5.6.0

如果您不确定 python 和 pyqt 版本。然后输入:

conda info pyqt

这将输出相关的pyqt版本。因此,您可以检查您的 pyqt 版本并从首先提到的命令安装。

【讨论】:

安装后,我收到以下错误:$ python Python 3.6.0 |Continuum Analytics, Inc.| (默认,2016 年 12 月 23 日,12:22:00)[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] 在 linux 上键入“帮助”、“版权”、“信用”或“许可证”以获取更多信息. >>> import matplotlib.pyplot as plt [1] 5177 分段错误(核心转储)python【参考方案3】:

一个命令救了我:

conda update ipython

【讨论】:

以上是关于当我使用 matplotlib.pyplot 时,python 3.6 中没有名为 PyQt4 的模块的主要内容,如果未能解决你的问题,请参考以下文章

无法在 virtualenv 中“将 matplotlib.pyplot 作为 plt 导入”

matplotlib pyplot imshow 图像之间的紧密间距

导入 matplotlib.pyplot 时嵌入式 python 崩溃

matplotlib pyplot 不绘图。找不到模块失败 python3-tk

Matplotlib:如何在非透明线边缘处拥有透明的盒子图?

python中matplotlib.pyplot的使用示例