当前位置: 首页 > 知识库问答 >
问题:

PyCharm Matplotlib“用户警告:Matplotib当前正在使用agg,这是一个非GUI后端,因此无法显示图.plt.show()”

暴辰龙
2023-03-14

我在 matplotlib.pyplot.show() 函数上遇到了问题。我在Linux上使用PyCharm,我有一个VirtualEnv。当我在 PyCharm 的内置终端(使用 venv)中执行文件 x.py 时,如下所示

Pythonx.py

一切正常,函数<code>plt。show()渲染并显示绘制的图形。我确实添加了print(matplotlib.get_backend())来查看默认使用的后端,结果是GTK3Agg。

当我使用选项运行而不是终端时,问题就开始了。然后我收到一条错误消息

用户警告:Matplotlib当前正在使用agg,这是一个非GUI后端,因此无法显示图.plt.show()

无论如何,我在网上搜索,根据这个和其他链接,我不得不在.config/matplotlib/matplotlibrc中添加后端:GTK3Agg。该文件不存在,所以我自己创建了它。现在,当我再次运行时,我收到以下错误消息:

raise ImportError('backend Gtk3Agg requires cairo') from e ImportError: backend Gtk3Agg requires cairo

我该如何解决这个问题?

共有2个答案

司徒胤
2023-03-14

就我而言(Linux Mint 20.3),问题来自从软件管理器安装PyCharm。然后安装了PyCharm与flatpak一起

flatpak list

如果是这样的话,应该给你一个主意。

该版本存在问题。请看一下:https://github . com/flat hub/com . jetbrains . py charm-Community/issues/15

我可以通过安装带有快照的 PyCharm 来修复它。https://thesecmaster.com/3-ways-to-install-pycharm-on-linux-mint-and-ubuntu/

然后:<code>sudo apt-get安装python3.8-tk</code>并在PyCharm中添加

“未来”和“matplotlib

有关它的更多信息:当您第一次运行PyCharm(从软件管理器安装)时,您会收到:

https://www.flathub.org

请在https://github . com/flat hub/com . jetbrains . py charm-Community/issues下打开问题

这个版本运行在一个容器中,因此无法访问您的主机系统上的SDK!

贺雅健
2023-03-14

我设法解决了我的问题,感谢@ImportanceOfBeingErnest指出我有两个环境,一个是安装GTK和依赖项的环境,另一个是PyCharm使用的环境,其中缺少这些环境。

我必须转到设置

同样需要安装pycairo和PyGObject的还有这些包,我必须从终端安装这些包:

sudo dnf install cairo-devel (or libcairo2 in ubuntu)
sudo dnf install python3-devel
sudo dnf install gobject-introspection-devel
sudo dnf install cairo-gobject-devel

现在我可以使用GTK3Agg作为我的后端。

 类似资料:
  • 我试图用pyplot绘制一个简单的图,例如: 但该图没有出现,我得到以下消息: 我在几个地方看到,必须使用以下方法更改matplotlib的配置: 我这样做了,但随后得到一个错误消息,因为它找不到模块: 然后,我尝试使用 (在虚拟环境中)安装“tkinter”,但它没有找到它: 我还应该提到,我正在使用虚拟环境在Pycharm Community Edition IDE上运行所有这些,并且我的操作

  • 我正在尝试使用pyplot绘制一个简单的图形,例如: 但该图并未显示,我收到以下信息: 我在几个地方看到,必须使用以下方法更改matplotlib的配置: 我这样做了,但随后收到一条错误消息,因为它找不到模块: 然后,我尝试使用(在虚拟环境中)安装“tkinter”,但它没有找到它: 我还应该提到的是,我正在使用虚拟环境在Py魅力社区版IDE上运行所有这些,我的操作系统Linux /Ubuntu1

  • 当我运行函数时,它显示: user warning:C:\ Users \ Administrator \ anaconda 3 \ lib \ site-packages \ matplotlib \ figure . py:397:user warning:matplotlib当前正在使用非GUI后端,因此无法显示该图

  • 当用户在我的网站上注册时,将自动创建一篇文章(在自定义文章类型下),并将用户指定为该文章的作者。这篇文章本质上是用户的“个人资料页面”。 任何用户都可以看到任何其他用户配置文件页面。但是,如果它属于登录用户,我希望在配置文件页面上显示一个按钮。 换句话说:如果登录用户是当前正在查看的帖子的作者(在前端),那么显示按钮。 下面是我最接近我需要做的事情-我创建了一个css id为的按钮,并在默认情况下

  • 问题内容: 我正在做一些代码练习,并在收到用户警告的同时应用数据帧合并 /usr/lib64/python2.7/site- packages/pandas/core/frame.py:6201:FutureWarning:排序是因为未串联的轴未对齐。熊猫的未来版本将更改为默认情况下不排序。要接受将来的行为,请传递“ sort = True”。要保留当前行为并消除警告,请传递sort = Fals

  • 我正在学习matplotlib,不知道如何保存图形而不在屏幕上打印。 所以我在网上做了一些研究,许多答案说解决方案是matplotlib.use(“Agg”)。而且必须在导入matplotlib.pyplot或pylab之前。 然后,当我在脚本的第一行添加它时,它根本不起作用。 我使用Anaconda Spyder,所以我重新启动了内核并再次运行了脚本,我得到了相同的错误信息。 然后我再次重启内核