我总是听到这个:

DeprecationWarning: integer argument expected, got float

我怎样才能让这条信息消失?在Python中有避免警告的方法吗?


当前回答

这些答案都不适合我,所以我将发布我的方法来解决这个问题。我在main.py脚本的开头使用了以下代码,它工作得很好。


原封不动地使用下面的代码(复制粘贴):

def warn(*args, **kwargs):
    pass
import warnings
warnings.warn = warn

例子:

import "blabla"
import "blabla"

def warn(*args, **kwargs):
    pass
import warnings
warnings.warn = warn

# more code here...
# more code here...

其他回答

如果你知道你在做什么,另一种方法是简单地找到警告你的文件(文件的路径显示在警告信息中),注释生成警告的行。

传递正确的参数?: P

更严重的是,您可以在命令行中将参数-Wi::DeprecationWarning传递给解释器,以忽略弃用警告。

对于python 3,只需编写下面的代码来忽略所有警告。

from warnings import filterwarnings
filterwarnings("ignore")

我有这些:

/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()

现在你仍然得到所有其他DeprecationWarnings,但不是由以下原因引起的:

import md5, sha

码头工人的解决方案

在运行python应用程序之前禁用ALL警告 您也可以禁用dockerized测试

ENV PYTHONWARNINGS="ignore::DeprecationWarning"