Я работаю с кодом, который выдает много (для меня сейчас) бесполезных предупреждений, используя warnings
библиотеку. Читая (/ сканируя) документацию, я нашел только способ отключить предупреждения для отдельных функций . Но я не хочу так сильно менять код.
Может быть, есть флаг, как python -no-warning foo.py
?
Что бы вы порекомендовали?
python
suppress-warnings
Framester
источник
источник
FutureWarning: This search is broken in 1.3 and earlier, and will be fixed in a future version. If you rely on the current behaviour, change it to [this other thing]
. Я предпочел бы игнорировать предупреждения сейчас и подождать, пока они будут исправлены, а не писать ненужный безобразный код, чтобы избежать безобидного предупреждения.Ответы:
Есть опция -W .
python -W ignore foo.py
источник
Вы смотрели раздел подавления предупреждений в документации по Python?
Я не оправдываю это, но вы могли бы просто подавить все предупреждения этим:
Пример:
источник
category
warnings.filterwarnings("ignore", category=DeprecationWarning)
warnings.filterwarnings
функции:module
. Это позволяет игнорировать предупреждения от указанного модуля.Вы также можете определить переменную окружения (новая функция в 2010 году - т.е. Python 2.7)
Тест как это: по умолчанию
Игнорировать предупреждения
Для предупреждений об устаревших взглянуть на как игнорировать-предупреждения-в-питоне
Скопировано здесь ...
Из документации
warnings
модуля :Если вы в Windows: передайте
-W ignore::DeprecationWarning
в качестве аргумента Python. Хотя лучше решить проблему, приведя к int .(Обратите внимание, что в Python 3.2 предупреждения об устаревании по умолчанию игнорируются.)
Или:
Теперь вы все еще получаете все остальные
DeprecationWarning
, но не те, которые вызваны:источник
tox
, добавлениеPYTHONWARNINGS=ignore
кsetenv
делает вывод менее грязным.Это старый вопрос, но в PEP 565 есть некоторые новые указания, что для отключения всех предупреждений, если вы пишете приложение на Python, вы должны использовать:
Причина, по которой это рекомендуется, заключается в том, что по умолчанию все предупреждения отключаются, но, что крайне важно, их можно снова включить с помощью
python -W
командной строки илиPYTHONWARNINGS
.источник
Если вы не хотите что-то сложное, то:
источник
warnings.filterwarnings("default", category=FutureWarning)
Если вы знаете, с какими бесполезными предупреждениями вы обычно сталкиваетесь, вы можете отфильтровать их по сообщениям.
источник
Я понимаю, что это применимо только к нише ситуаций, но в
numpy
контексте, который мне действительно нравится использоватьnp.errstate
:Однако, используя
np.errstate
:Самое приятное то, что вы можете применять это только к очень конкретным строкам кода.
источник
предупреждения выводятся через stderr, и простое решение заключается в добавлении '2> / dev / null' к CLI. это имеет большой смысл для многих пользователей, таких как пользователи с centos 6, которые застряли с зависимостями Python 2.6 (например, yum), а различные модули находятся на грани исчезновения в своем покрытии.
это особенно верно для криптографии с участием SNI и так далее. можно обновить 2.6 для обработки HTTPS с помощью процедуры по адресу: https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2
предупреждение все еще на месте, но все, что вы хотите, перенесено обратно. перенаправление stderr оставит вас с чистым выводом терминала / оболочки, хотя само содержимое stdout не изменится.
отвечая на FriendFX. Предложение одно (1) отвечает непосредственно на проблему с универсальным решением. Во втором предложении (2) учитывается цитируемый якорь 'отключение предупреждений', характерный для Python 2.6, и отмечается, что пользователи RHEL / centos 6 напрямую не могут обойтись без 2.6. хотя не было приведено никаких конкретных предупреждений, параграф 2 (2) отвечает на вопрос 2.6, который я чаще всего получаю о недостатках в модуле криптографии и о том, как можно «модернизировать» (то есть обновить, backport, исправить) производительность HTTPS / TLS Python , абзац третий (3) просто объясняет результат использования перенаправления и обновления модуля / зависимостей.
источник