我正在处理使用警告库抛出大量(对我来说)无用警告的代码。阅读(/扫描)文档时,我只找到了禁用单个函数警告的方法。但我不想更改这么多代码。
是否有类似python的标志-没有警告foo.py?
你会推荐什么?
我正在处理使用警告库抛出大量(对我来说)无用警告的代码。阅读(/扫描)文档时,我只找到了禁用单个函数警告的方法。但我不想更改这么多代码。
是否有类似python的标志-没有警告foo.py?
你会推荐什么?
当前回答
当所有其他操作都失败时,请使用以下选项:https://github.com/polvoazul/shutup
管道安装关闭
然后在代码顶部添加:
import shutup; shutup.please()
免责声明:我是该存储库的所有者。我在第五次需要它后写了它,但找不到任何简单的东西。
其他回答
我意识到这只适用于特定的情况,但在numpy上下文中,我非常喜欢使用np.errstate:
np.sqrt(-1)
__main__:1: RuntimeWarning: invalid value encountered in sqrt
nan
但是,使用np.errstate:
with np.errstate(invalid='ignore'):
np.sqrt(-1)
nan
最好的一点是,您只能将其应用于非常特定的代码行。
您还可以定义一个环境变量(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')
>>>
有关弃用警告,请查看如何忽略python中的弃用警告
复制到此处。。。
从警告模块的文档中:
#!/usr/bin/env python -W ignore::DeprecationWarning
如果您在Windows上:pass-W ignore::DeprecationWarning作为Python的参数。不过,最好通过向int转换来解决问题。
(注意,在Python 3.2中,默认情况下会忽略弃用警告。)
Or:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=DeprecationWarning)
import md5, sha
yourcode()
现在,您仍然会收到所有其他DeprecationWarnings,但不会收到以下原因导致的警告:
import md5, sha
不要让它变得复杂,只需使用这两行
import warnings
warnings.filterwarnings('ignore')
import sys
if not sys.warnoptions:
import warnings
warnings.simplefilter("ignore")
在处理文件或添加新功能以重新启用警告时,将忽略更改为默认值。
如果你不想要复杂的东西,那么:
import warnings
warnings.filterwarnings("ignore", category=FutureWarning)