我的应用程序中充斥着来自第三个软件包的警告
transformers/modeling_deberta.py:18: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working
from collections import Sequence
如何抑制这些警告
我试过:
export PYTHONWARNINGS="ignore::DeprecationWarning"
warnings.filterwarnings(action="ignore")
warnings.filterwarnings(action="ignore", category=DeprecationWarning)
warnings.filterwarnings(action="ignore", category=DeprecationWarning, module=r".*transformers.*")
warnings.filterwarnings(action="ignore", category=DeprecationWarning, module=r".*collections.*")
warnings.filterwarnings(action="ignore", message=r".*collections.abc.*")
更新 以下选项不可行:
也许我应该等第三个软件包升级。只是想知道在python中是否有其他选项来禁止特定的第三方警告
警告告诉您,您正在从一个在Python 3.3之前是正确的位置获取一些资源,并且从Python 3.9开始根本无法工作。您使用的是介于3.3和3.9之间的Python版本,这意味着这在目前仍然适用,但是您需要重构代码,以便从
collections.abc
而不是从collections
导入ABC。除非您按照错误提示的方式重构代码,否则您将使用3.9之前的Python版本,这限制了您的可能性,将不允许使用这些版本之后实现的任何好东西,并且将越来越多地看到库与您的项目不兼容,因为它们对于您的项目来说过于现代您可以通过将项目降级到3.3之前的Python版本来消除警告,但如果可能的话,这是您应该努力避免的方向。最好的解决方案是重构您的项目以符合现代Python版本的条款,如果您使用的软件包阻止您这样做,那么您可能需要升级这些软件包。如果没有升级可以解决这个问题,那么就很值得问一个问题:从劳动力角度来看,以更现代的方式实现其功能的成本是否更高,或者如果使用旧的Python版本,从技术短缺角度来看,成本是否更高
我从here找到了我的答案
解决方案:确保在导入第三个包之前运行以下代码
相关问题 更多 >
编程相关推荐