Answers:
从warnings
模块的文档中:
#!/usr/bin/env python -W ignore::DeprecationWarning
如果您使用的是Windows,请-W ignore::DeprecationWarning
作为参数传递给Python。最好通过强制转换为int来解决问题。
(请注意,在Python 3.2中,默认情况下会忽略弃用警告。)
export PYTHONWARNINGS="ignore::DeprecationWarning:simplejson"
是无效的,它会从sorl禁用django json贬值警告
您应该只修复代码,以防万一,
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings("ignore", category=DeprecationWarning)
。我认为您必须在导入吐出警告的库之后运行此命令,尽管我可能会误会。
from xgboost import XGBClassifier
。我必须warnings.filterwarnings("ignore", category=DeprecationWarning)
在导入之前立即将其投入使用。
我有这些:
/home/eddyp/virtualenv/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/persisted/sob.py:12:
DeprecationWarning: the md5 module is deprecated; use hashlib instead import os, md5, sys
/home/eddyp/virtualenv/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/python/filepath.py:12:
DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha
使用以下方法修复了该问题:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=DeprecationWarning)
import md5, sha
yourcode()
现在您仍然得到所有其他DeprecationWarning
s,但不是由以下原因引起的:
import md5, sha
这些答案都不适合我,因此我将发布解决方法。我使用以下at the beginning of my main.py
脚本,它运行正常。
照原样使用以下内容(复制粘贴):
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
例:
import "blabla"
import "blabla"
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
# more code here...
# more code here...
将参数转换为int。就这么简单
int(argument)
当您只想在功能中忽略警告时,可以执行以下操作。
import warnings
from functools import wraps
def ignore_warnings(f):
@wraps(f)
def inner(*args, **kwargs):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter("ignore")
response = f(*args, **kwargs)
return response
return inner
@ignore_warnings
def foo(arg1, arg2):
...
write your code here without warnings
...
@ignore_warnings
def foo2(arg1, arg2, arg3):
...
write your code here without warnings
...
只需在要忽略所有警告的函数上添加@ignore_warnings装饰器
ENV PYTHONWARNINGS="ignore::DeprecationWarning"
如果您使用的是Python3,请尝试以下代码:
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
或尝试这个...
import warnings
def fxn():
warnings.warn("deprecated", DeprecationWarning)
with warnings.catch_warnings():
warnings.simplefilter("ignore")
fxn()
或尝试这个...
import warnings
warnings.filterwarnings("ignore")
Python 3
在编写代码之前,只需在容易记住的几行下面编写代码:
import warnings
warnings.filterwarnings("ignore")
对于python 3,只需编写以下代码即可忽略所有警告。
from warnings import filterwarnings
filterwarnings("ignore")
不会打扰您,但会警告您,下次升级python时,您正在做的事情可能会停止工作。转换为int并完成它。
顺便说一句。您还可以编写自己的警告处理程序。只需分配一个不执行任何操作的函数即可。 如何将python警告重定向到自定义流?
/usr/bin/env: python -W ignore::DeprecationWarning: No such file or directory
错误。如果我-W ignore::DeprecationWarning
在命令行上使用python 选项运行它,那么它会起作用,但是/ usr / bin / env不会处理它。