9 ответов:
из документации
warningsмодуль:#!/usr/bin/env python -W ignore::DeprecationWarningЕсли вы находитесь на Windows: pass
-W ignore::DeprecationWarningв качестве аргумента в Python. Лучше, хотя, чтобы решить эту проблему, путем приведения к int.(обратите внимание, что в Python 3.2, предупреждения игнорируются по умолчанию.)
у меня были такие:
/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()теперь вы все равно получите все другие
DeprecationWarnings, но не те, которые вызваны:import md5, sha
вы должны просто исправить ваш код, но на всякий случай
import warnings warnings.filterwarnings("ignore", category=DeprecationWarning)
Я нашел самый чистый способ сделать это (особенно в windows), добавив следующее C:\Python26\Lib\site-packages\sitecustomize.py:
import warnings warnings.filterwarnings("ignore", category=DeprecationWarning)обратите внимание, что я должен был создать этот файл. Конечно, измените путь к python, если ваш отличается.
передать правильные аргументы? : P
на более серьезной ноте вы можете передать аргумент-Wi::DeprecationWarning в командной строке интерпретатору, чтобы игнорировать предупреждения об устаревании.
ни один из упомянутых ответов не работал для меня, поэтому я опубликую свой способ решить эту проблему. Я использую следующее
at the beginning of my main.pyскрипт и он работает нормально.
используйте следующее как есть (скопируйте-вставьте его):
import numpy as np import . . . . . . . def warn(*args, **kwargs): pass import warnings warnings.warn = warn # more code here... # more code here...
Не бить вас об этом, но вас предупреждают, что то, что вы делаете, скорее всего, перестанет работать при следующем обновлении python. Преобразуйте в int и покончите с этим.
кстати. Вы также можете написать свой собственный обработчик предупреждений. Просто назначьте функцию, которая ничего не делает. как перенаправить предупреждения python в пользовательский поток?
Если вы хотите игнорировать предупреждения только в функциях, вы можете сделать следующее.
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 в функцию, которую вы хотите игнорировать все предупреждения
Comments