如何在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?