运行pytest时触发pkg_resources DeprecationWarning但正常运行应用无此警告的原因咨询
运行pytest时触发pkg_resources DeprecationWarning但正常运行应用无此警告的原因咨询
嗨,这个问题其实和pytest与Python默认运行时的警告处理机制差异有关,我来给你拆解下:
pytest默认会主动捕获并展示更多警告
pytest为了帮助开发者提前发现代码中的潜在问题(包括依赖库的废弃API使用),默认会调整Python的警告过滤器,把所有DeprecationWarning都捕获并报告出来——不管这个警告来自你自己的代码还是第三方依赖。而你正常运行应用时,Python的默认配置是不会显示这类来自第三方库的DeprecationWarning的,所以你看不到这个提示。Python默认的警告过滤规则
Python在正常运行脚本时,默认会忽略第三方库发出的DeprecationWarning,这是为了避免终端被大量来自依赖的警告信息刷屏。你可以试试在正常运行应用时加上警告开启参数:python -W default your_script.py这样你应该就能看到和pytest里一样的
pkg_resources废弃警告了,这也能验证问题的根源是警告显示配置的不同,而不是代码本身的问题。补充:如何在pytest中过滤这个警告
如果你觉得这个来自pygame的警告对你的开发没有影响,可以在项目根目录创建pytest.ini文件,添加规则来过滤它:[pytest] filterwarnings = ignore::DeprecationWarning:pkg_resources
备注:内容来源于stack exchange,提问作者Shai Avr
相关产品推荐
相关产品推荐

