如何在Python中忽略弃用警告
我一直得到这个:
DeprecationWarning: integer argument expected, got float
我如何使这个消息消失? 有没有办法避免Python中的警告?
从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()
现在你仍然得到所有其他的DeprecationWarning
,但不是由以下原因造成的:
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)
请注意,我不得不创build这个文件。 当然,如果你的path不同,改变path到python。
传递正确的论点? :P
更严重的是,您可以在命令行上将参数-Wi :: DeprecationWarning传递给解释器,以忽略弃用警告。
将参数转换为int。 这很简单
int(argument)
不要打扰你,但你被警告说,你正在做的事情可能会停止工作,当你下一次升级python。 转换为int并完成它。
BTW。 您也可以编写自己的警告处理程序。 只分配一个什么都不做的函数。 如何将python警告redirect到自定义stream?