一尘不染

如何禁用python警告

python

我正在使用的代码会使用该warnings库引发很多(目前对我而言)无用的警告。阅读(/扫描)文档后,我只找到了一种禁用单个功能警告的方法。但是我不想更改太多代码。

可能有像这样的标志python -no-warning foo.py吗?

你会推荐什么?


阅读 838

收藏
2020-02-17

共2个答案

一尘不染

有-W选项。

python -W ignore foo.py

2020-02-17
一尘不染

你是否查看了python文档的“ 抑制警告”部分?

如果你使用的代码知道会发出警告(例如已弃用的函数),但又不想看到该警告,则可以使用catch_warnings上下文管理器来抑制该警告:

import warnings

def fxn():
    warnings.warn("deprecated", DeprecationWarning)

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    fxn()

我不容忍,但是你可以通过以下方式禁止所有警告:

import warnings
warnings.filterwarnings("ignore")

例如:

>>> import warnings
>>> def f():
...  print('before')
...  warnings.warn('you are warned!')
...  print('after')
>>> f()
before
__main__:3: UserWarning: you are warned!
after
>>> warnings.filterwarnings("ignore")
>>> f()
before
after
2020-02-17