Відповіді:
З документації 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
s, але не ті, що викликані:
import md5, sha
Я знайшов найчистіший спосіб зробити це (особливо у Windows), додавши до C: \ Python26 \ Lib \ site-пакети \ 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")
Пітон 3
Просто напишіть нижче рядки, які легко запам’ятати перед написанням коду:
import warnings
warnings.filterwarnings("ignore")
Для python 3 просто напишіть коди нижче, щоб ігнорувати всі попередження.
from warnings import filterwarnings
filterwarnings("ignore")
Не бити вас з цього приводу, але вас попереджають, що те, що ви робите, швидше за все, перестане працювати при наступному оновлення python. Перетворити в int і зробити з ним.
До речі. Ви також можете написати власний обробник попереджень. Просто призначте функцію, яка нічого не робить. Як перенаправити попередження пітона на користувацький потік?
/usr/bin/env: python -W ignore::DeprecationWarning: No such file or directory
помилку. Він працює, якщо я запускаю python з-W ignore::DeprecationWarning
опцією в командному рядку, але / usr / bin / env не займається цим.