从matplotlib导入pyplot时出错

问题描述 投票:0回答:2

我已经在Linux(64位)计算机上安装了Anaconda 4.2.0。我导入了整个matplotlib模块,它可以正常工作。但是当我从matplotlib导入pyplot时:

from matplotlib import pyplot

发生错误。它说

ImportError: No module named PyQt4

据我所知,pyplot的后端已在Anaconda 4.2中固定为PyQt5。我尝试导入PyQt5。没关系。我想知道为什么pyplot需要PyQt4。如何解决此问题?任何建议将不胜感激。

python matplotlib
2个回答
0
投票

我认为您应该打开matplotlib软件包并找到pyplot.py。在其中,您应该找到导入pyqt的代码部分。检查是否是这样:

is_agg_backend = rcParams['backend'].endswith('Agg')
if 'wx' in sys.modules and not backend in ('WX', 'WXAgg'):
    import wx
    if wx.App.IsMainLoopRunning():
        rcParams['backend'] = 'wx' + 'Agg' * is_agg_backend
elif 'PyQt4.QtCore' in sys.modules and not backend == 'Qt4Agg':
    import PyQt4.QtGui
    if not PyQt4.QtGui.qApp.startingUp():
        # The mainloop is running.
        rcParams['backend'] = 'qt4Agg'
elif 'PyQt5.QtCore' in sys.modules and not backend == 'Qt5Agg':
    import PyQt5.QtWidgets
    if not PyQt5.QtWidgets.qApp.startingUp():
        # The mainloop is running.
        rcParams['backend'] = 'qt5Agg'
elif ('gtk' in sys.modules and
      backend not in ('GTK', 'GTKAgg', 'GTKCairo')):
    if 'gi' in sys.modules:
        from gi.repository import GObject
        ml = GObject.MainLoop
    else:
        import gobject
        ml = gobject.MainLoop
    if ml().is_running():
        rcParams['backend'] = 'gtk' + 'Agg' * is_agg_backend
elif 'Tkinter' in sys.modules and not backend == 'TkAgg':
    # import Tkinter
    pass  # what if anything do we need to do for tkinter?

_backend_selection()

这部分代码,请检查您是否至少具有以下GUI框架之一。

让我知道


0
投票

此主题现在很旧,但是有人遇到相同的问题,请尝试将此命令放在cmd中:

pip install --upgrade matplotlib

它对我有用,我希望它也对您有用。

© www.soinside.com 2019 - 2024. All rights reserved.