Ответы:
Из документации warnings
модуля :
#!/usr/bin/env python -W ignore::DeprecationWarning
Если вы в Windows: передайте -W ignore::DeprecationWarning
в качестве аргумента Python. Хотя лучше решить проблему, приведя к int .
(Обратите внимание, что в Python 3.2 предупреждения об устаревании по умолчанию игнорируются.)
export PYTHONWARNINGS="ignore::DeprecationWarning:simplejson"
чтобы отключить предупреждения Django JSON об удалении из sorl
Вы должны просто исправить свой код, но на всякий случай,
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
, но не те, которые вызваны:
import md5, sha
Я нашел самый чистый способ сделать это (особенно в Windows), добавив следующее в C: \ Python26 \ Lib \ site-packages \ sitecustomize.py:
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
Обратите внимание, что мне пришлось создать этот файл. Конечно, измените путь к python, если у вас другой.
Ни один из этих ответов не сработал для меня, поэтому я опубликую свой способ решить эту проблему. Я использую следующий 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...
ENV PYTHONWARNINGS="ignore::DeprecationWarning"
Преобразуйте аргумент в 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 в функцию, которую вы хотите игнорировать все предупреждения
Попробуйте приведенный ниже код, если вы используете 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
ошибку. Это работает, если я запускаю python с-W ignore::DeprecationWarning
параметром в командной строке, но / usr / bin / env не справляется с этим.