我正在使用的代码会抛出很多(对我而言)无用的警告,使用`warnings`库。阅读(/scanning)文档我只找到了一种方法禁用单个functions的警告
..。但我不想更改太多代码。
有没有像这样的旗帜
python -no-warning foo.py
你有什么推荐的吗?
发布于 2013-01-23 00:31:00
看看临时抑制WarningsPython文档的部分:
如果您使用的代码会引发警告,但又不想看到警告,则可以使用`catch_warnings`
上下文管理器:
导入警告def fxn():带有warnings.catch的warnings.warn("deprecated",DeprecationWarning)_警告():warnings.simplefilter("ignore") fxn()
我不能宽恕你,但你可以禁止显示所有警告有了这个:
import warnings
warnings.filterwarnings("ignore")
例如:
>>> import warnings
>>> def f():
... print('before')
... warnings.warn('you are warned!')
... print('after')
...
>>> f()
before
:3: UserWarning: you are warned!
after
>>> warnings.filterwarnings("ignore")
>>> f()
before
after
发布于 2013-07-15 20:59:26
您还可以定义环境变量( 2010年的新特性-即python 2.7)
export PYTHONWARNINGS="ignore"
像这样测试:默认
$ export PYTHONWARNINGS="default"
$ python
>>> import warnings
>>> warnings.warn('my warning')
__main__:1: UserWarning: my warning
>>>
忽略警告
$ export PYTHONWARNINGS="ignore"
$ python
>>> import warnings
>>> warnings.warn('my warning')
>>>
对于弃用警告看一看how-to-ignore-deprecation-warnings-in-python复制到这里...
来自警告warnings
module:(https://docs.python.org/3/library/warnings.html)
#!/usr/bin/env python -W ignore::DeprecationWarning
如果你使用的是Windows: pass-W ignore::DeprecationWarning
作为Python的参数。更好的方法是解决这个问题,方法是将int..。
(请注意,在Python 3.2中,默认情况下会忽略弃用警告。)
或者:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=DeprecationWarning)
import md5, sha
yourcode()
现在你仍然可以得到所有其他的DeprecationWarning
s,但不是由以下原因引起的:
import md5, sha
发布于 2018-02-07 02:48:40
这是一个老问题,但在PEP 565](https://www.python.org/dev/peps/pep-0565) 要关闭所有警告,如果您正在编写python应用程序,您应该使用:
import sys
import warnings
if not sys.warnoptions:
warnings.simplefilter("ignore")
建议这样做的原因是,默认情况下,它会关闭所有警告,但最重要的是,它允许通过python -W
在命令行上或PYTHONWARNINGS
..。
https://stackoverflow.com/questions/14463277
复制相似问题