You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:54:51