【问题标题】:Pycharm - Importing MatplotlibPycharm - 导入 Matplotlib
【发布时间】:2017-04-19 04:28:05
【问题描述】:

我已经安装了 Pycharm 并使用 Anaconda 3 作为我的解释器。我无法导入 Matplotlib(或 Seaborn)。当我运行“import matplotlib.pyplot as plt”时,我得到以下信息:--

import matplotlib.pyplot as plt

后端 Qt5Agg 是交互式后端。开启交互模式。

Traceback(最近一次调用最后一次):

文件“C:\Program Files (x86)\JetBrains\PyCharm 社区版 2016.2.3\helpers\pydev\pydev_ipython\inputhook.py",第 502 行,在 enable_gui gui_hook = guis[gui] KeyError: 'qt5'

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev_pydev_bundle\pydev_ipython_console_011.py”,第 123 行,在 enable_gui return real_enable_gui(gui, app) 文件“C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev\pydev_ipython\inputhook.py”,第 508 行,在 enable_gui 引发 ValueError(e) ValueError: 无效的 GUI 请求 'qt5',有效的是:dict_keys(['osx', 'gtk', 'qt4', 'qt', 'gtk3', 'glut', 'pyglet', 'wx', 'none', 'tk'])

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次): 文件“C:\Program Files\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py”,第 2881 行,在 run_code 执行(code_obj,self.user_global_ns,self.user_ns) 文件“”,第 1 行,在 将 matplotlib.pyplot 导入为 plt 文件“C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev_pydev_bundle\pydev_import_hook.py”,第 21 行,在 do_import 模块 = self._system_import(名称,*args,**kwargs) 文件“C:\Program Files\Anaconda3\lib\site-packages\matplotlib\pyplot.py”,第 2512 行,在 install_repl_displayhook() 文件“C:\Program Files\Anaconda3\lib\site-packages\matplotlib\pyplot.py”,第 165 行,在 install_repl_displayhook ip.enable_gui(ipython_gui_name) 文件“C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev_pydev_bundle\pydev_ipython_console_011.py”,第 125 行,在 enable_gui 引发 UsageError("%s" % e) IPython.core.error.UsageError:无效的GUI请求'qt5',有效的是:dict_keys(['osx','gtk','qt4','qt','gtk3','glut','pyglet', 'wx', 'none', 'tk'])

【问题讨论】:

标签: python matplotlib


【解决方案1】:

尝试在命令行(不是 Python、windows cmd 或 unix 终端)中运行 pip install PyQt5。如果这不起作用 - 请尝试conda install PyQt5。虽然这没有意义,因为 matplotlib 使用 tkinter。

【讨论】:

  • 您好,感谢您的回复。我收到这些错误:> conda install PyQt5 --Fetching package metadata......Conda HTTPError : HTTP Error :Could not find URL:conda.anaconda.org/seaborn/win-64 >pip install PyQt5 -- 找不到满足要求的版本PyQt5 PyQt5 没有匹配的发行版
  • 我更正了 conda install 的频道,现在我得到了这个:获取包元数据......解决包规范:。 PackageNotFoundError: 找不到包:'' 当前 win-64 通道中缺少包:- pyqt5 找到关闭匹配项;你的意思是其中之一吗? pyqt5: pyqt 你可以使用 anaconda search -t conda pyqt5 在 anaconda.org 上搜索包
  • OK 终于成功安装了,但我遇到了同样的错误。
【解决方案2】:

我刚刚偶然发现了同样的问题,并找到了一种轻松解决它的方法。我无法让它与 Qt5 一起工作,所以我将后端切换到 TkAgg。

首先,这是非常可选的,我通过conda update matplotlib 更新了matplotlib。我这样做是为了确保包含后端 TkAgg(但是,它已在 2014 年添加到 conda 所以......)。

然后,如果您使用的是 Anaconda3,我更改了位于 C:\Anaconda3\pkgs\matplotlib-2.0.2-np113py35_0\Lib\site-packages\matplotlib\mpl-data\ 中的 matplotlibrc 文件中的后端指令。

在设置 -> 项目解释器的 Pycharm 中检查您的 matplotlibnumpy 版本,以确保您正在修改正确的文件。在我的情况下,matplotlib 2.0.2numpy 1.13

用编辑器打开这个matplotlibrc文件,然后在第30行左右将后端指令(最初是Qt5Agg)更改为TkAgg

#### CONFIGURATION BEGINS HERE

# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
# Template.
# You can also deploy your own backend outside of matplotlib by
# referring to the module name (which must be in the PYTHONPATH) as
# 'module://my_backend'.
backend      : TkAgg  # HERE!!!

然后保存,重新启动 PyCharm,你的 import matplotlib.pyplot as plt 应该可以工作了。您应该看到后端在启动时已更改,如下所示: Backend TkAgg is interactive backend. Turning interactive mode on.

(适用于 Python 3.5.2、Anaconda 4.2.0(64 位))

(也适用于 Python 3.6.2、Anaconda 5.5.0(64 位))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2023-03-30
    • 2014-07-28
    • 2017-01-22
    • 2016-11-21
    • 2013-02-14
    • 2018-11-21
    相关资源
    最近更新 更多