首页 > 解决方案 > 导入 sympy 和 matplotlib.pyplot 会导致弃用警告

问题描述

这运行良好,没有任何警告或错误,

from matplotlib import pyplot as plt
plt.plot(range(10))

这个,

from matplotlib import pyplot as plt
import sympy
plt.plot(range(10))

生产,

/home/username/.local/lib/python3.8/site-packages/matplotlib/backends/backend_gtk3.py:327: 
DeprecationWarning: Gtk.Window.set_wmclass is deprecated
  self.window.set_wmclass("matplotlib", "Matplotlib")

请注意,如果您同时导入它们但不调用 plot 函数,则不会收到弃用警告。

我不知道发生了什么。谷歌搜索该警告并没有找到与 Sympy 相关的任何内容。Python 位于3.8.5, Sympy 位于1.8, Matplotlib 位于3.4.0

标签: python-3.xmatplotlibsympy

解决方案


您收到的消息是 awarning而不是error. 不同之处在于您的代码已正常执行,该消息提供了额外的信息,这些信息在将来的某个时候Gtk.Window.set_wmclass将不可用,这是给程序员(在这种情况下是matplotlib开发人员)的一个注释,他们应该更改他们的代码以使用的做某事的方式。如果您使用旧/新软件包的组合,您应该会看到这些警告。

您可以忽略/抑制此警告消息,或更新您的软件包。

建议您使用虚拟环境将您使用的 Python 与您的系统使用的 Python 隔离开来。它将允许您使用最新版本的软件包,并且您将不再冒险意外破坏系统实用程序。有很多选项,因为 Python ~3.6 有venv标准库中包含的模块。


推荐阅读