分类目录:《系统学习Python》总目录
警告过滤器由传给Python解释器的命令行-W
选项和PYTHONWARNINGS
环境变量初始化。解释器在sys.warningoptions
中保存了所有给出的参数,但不作解释;warnings
模块在第一次导入时会解析这些参数(无效的选项被忽略,并会先向sys.stderr
打印一条信息)。
每个警告过滤器的设定格式为冒号分隔的字段序列:
action:message:category:module:line
这些字段的含义在文章《系统学习Python——警告信息的控制模块warnings:警告过滤器-[基础知识]》有过说明。当一行中列出多个过滤器时(如PYTHONWARNINGS
),过滤器间用逗号隔开,后面的优先于前面的(因为是从左到右应用的,最近应用的过滤器优先于前面的)。
常用的警告过滤器适用于所有的警告、特定类别的警告、由特定模块和包引发的警告。下面是一些例子:
default # Show all warnings (even those ignored by default)
ignore # Ignore all warnings
error # Convert all warnings to errors
error::ResourceWarning # Treat ResourceWarning messages as errors
default::DeprecationWarning # Show DeprecationWarning messages
ignore,default:::mymodule # Only report warnings triggered by "mymodule"
error:::mymodule[.*] # Convert warnings to errors in "mymodule"
# and any subpackages of "mymodule"