繁体   English   中英

无法使用最新的conda导入matplotlib.pyplot

[英]Unable to import matplotlib.pyplot with latest conda

我正在使用Python 2.7.12运行Conda版本4.2.9,我已经在新的conda环境和仅matplotlib软件包中确认了此错误。

当我尝试导入matplotlib.pyplot时发生我的问题:

>>> import matplotlib.pyplot
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/pyplot.py", line 114, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 16, in <module>
    from .backend_qt5 import QtCore
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/backend_qt5.py", line 31, in <module>
    from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, __version__
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/qt_compat.py", line 137, in <module>
    from PyQt4 import QtCore, QtGui
ImportError: No module named PyQt4

我已经在这个问题上进行了广泛的搜索,发现有一些临时解决方案,但是,我不知道如何使用其中一种,而另一种不适用于我。

一种解决方案是手动设置matplotlib的后端,如下所示:

>>> import matplotlib
>>> matplotlib.use('Qt5Agg')
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/pyplot.py", line 114, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 16, in <module>
    from .backend_qt5 import QtCore
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/backend_qt5.py", line 31, in <module>
    from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, __version__
  File "/home/me/anaconda2/envs/snowflake/lib/python2.7/site-packages/matplotlib/backends/qt_compat.py", line 137, in <module>
    from PyQt4 import QtCore, QtGui
ImportError: No module named PyQt4

如您所见,这对我来说失败了。 另一个解决方案是使用补丁( 来自此线程 )。 不幸的是,我不知道如何使用此补丁程序或如何将pyqt固定到4.11。 有人可以帮忙吗?

固定包在这里说明。

补丁太小,您可以手工应用。 查找您的matplotlibrc文件(可能是.config/matplotlib/matplotlibrc ),然后通过编辑以下几行将默认后端设置为Qt5Agg:

backend      : Qt5Agg
backend.qt5  : PyQt5

但是,由于您的程序中已经有use("Qt5Agg") (它覆盖了rcfile),所以我认为这不会有所帮助。

我认为您的问题是由于QT_API环境变量仍然设置为PyQt4 (或PySide )引起的。 例如,通过添加import os; print(os.environ.get('QT_API')) import os; print(os.environ.get('QT_API'))到您的程序。 在这种情况下,请将export QT_API=PyQt5行添加到您的.bashrc (假设您运行Linux)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM