在我的 Django 应用程序中,当我导入第三方库时,我在控制台中收到此警告:
imp 模块已被弃用,取而代之的是 importlib;有关其他用途,请参阅模块的文档
但是,如果我在 Python shell 中进行导入,那么一切都可以。我想在 Django 中实现相同的行为。这是我根据其他操作系统线程中的答案尝试过的:
import warnings
from django.utils.deprecation import RemovedInDjango110Warning
warnings.filterwarnings(action="ignore", category=RemovedInDjango110Warning)
上面的代码会产生另一条错误消息,表明RemovedInDjango110Warning不存在。我也尝试过这个:
import warnings
def fxn():
warnings.warn("deprecated", DeprecationWarning)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
fxn()
from third_party_lib import some_module
但我仍然收到完全相同的错误消息。所以,这个问题以前的所有答案似乎都已经过时了。我们需要一些新的修复。谢谢!
我也尝试过这个:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=DeprecationWarning)
from third_party_lib import some_module
但没有效果。
您尝试过的代码存在一些问题。如果你想过滤PendingDeprecationWarning
,那么你应该使用PendingDeprecationWarning
在你的代码中。您的代码正在使用DeprecationWarning
and RemovedInDjango110Warning
,这是不同的警告。其次,fxn()
文档中的函数是一个创建警告的示例函数。将其包含在您的代码中是没有意义的。
您可以过滤所有待处理的弃用警告
import warnings
warnings.simplefilter("ignore", category=PendingDeprecationWarning)
但是,这可能会在您自己的代码中隐藏您应该修复的未决弃用。更好的方法是使用上下文管理器,在导入第三方库时过滤掉警告。
with warnings.catch_warnings():
warnings.simplefilter("ignore", category=PendingDeprecationWarning)
from third_party_lib import some_module
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)