gpt4 book ai didi

python - 使用 __pycache__ 时 pytest 隐藏警告

转载 作者:行者123 更新时间:2023-12-04 16:45:22 25 4
gpt4 key购买 nike

Pytest 警告在第一次和后续运行之间是不同的。

janbet@ub/home/janbet $ cat test_x.py 
def test_1():
a = '\d'
janbet@ub/home/janbet $ pytest test_x.py | tail -1
========================= 1 passed, 1 warning in 0.00s =========================
janbet@ub/home/janbet $ pytest test_x.py | tail -1
============================== 1 passed in 0.00s ===============================

rm -r __pycache__后再次出现警告或 touch test_x.py或类似的东西。
我猜这些警告是在 .py 时创建的文件被读取,当 __pycache__可用并且是最新的,它们根本没有被阅读。这样对吗?
有什么简单的方法可以强制 pytest从不使用 __pycache__根本?这可能不是很重要,但是当我的测试运行结果取决于之前运行期间创建或未创建的某些内部文件时,我非常厌恶这种情况。

最佳答案

对于这个特殊的警告,这与 python 的工作方式是一致的——只有在编译源代码时才会忽略无效的转义序列警告(之后,pyc 文件可用并且不咨询源代码)
您可以设置 PYTHONDONTWRITEBYTECODE=1环境变量以防止 pyc 写入,但是您将不得不处理重复编译代码的缓慢启动成本
我建议使用 linter 来检测这个(例如 flake8 在默认情况下通过 pycodestyle 检测到这个)和/或一个自动修复程序来解决这个问题(pyupgrade 例如 fixes this )

免责声明:我是 pytest 的核心开发者,我是 flake8 的当前维护者,我是 pycodestyle 的维护者,我创建了 pyupgrade

关于python - 使用 __pycache__ 时 pytest 隐藏警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65438197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com