python-3.x - 导入 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
。
解决方案
您收到的消息是 awarning
而不是error
. 不同之处在于您的代码已正常执行,该消息提供了额外的信息,这些信息在将来的某个时候Gtk.Window.set_wmclass
将不可用,这是给程序员(在这种情况下是matplotlib
开发人员)的一个注释,他们应该更改他们的代码以使用新的做某事的方式。如果您使用旧/新软件包的组合,您应该会看到这些警告。
您可以忽略/抑制此警告消息,或更新您的软件包。
建议您使用虚拟环境将您使用的 Python 与您的系统使用的 Python 隔离开来。它将允许您使用最新版本的软件包,并且您将不再冒险意外破坏系统实用程序。有很多选项,因为 Python ~3.6 有venv
标准库中包含的模块。
推荐阅读
- mysql - MySQL - 如何修复函数创建错误 1418
- java - JSONObject将值插入现有键并取最后一个值
- google-chrome-devtools - 添加 JavaScript 库时如何解决“DevTools 无法加载 SourceMap:无法加载内容”错误?
- python - 为什么我的 .config 总是被分配到右下角的按钮?
- python - 矢量类上的 __iter__ 和 __next__ 正在做一些奇怪的事情
- pandas - 如何使用熊猫中的列表添加一对多列
- java - Java 提取维基百科信息
- datetime - 注释日期时间对象的推荐方法是什么?
- android - 使用 Gigya Android SDK 的密码智能锁
- powershell - PowerShell,帮助函数的语法