运行pytest时conftest.py加载失败错误求助
这种情况我碰到过好几次,大概率是本地环境或者路径配置的小问题,咱们一步步来排查:
先确认当前工作目录
pytest 对路径的解析依赖你执行命令时的工作目录。比如如果你的仓库根目录是repo,那你得确保是在仓库根目录下运行pytest repo/tests/test_file.py,而不是repo/tests或者更上层的文件夹。可以用pwd(Linux/macOS)或cd(Windows)命令确认当前路径,也试试用绝对路径执行命令,比如pytest /full/absolute/path/to/repo/tests/test_file.py,看能不能绕过路径解析的问题。验证本地 Python 环境与依赖一致性
有可能是你本地的虚拟环境和团队用的不一致,比如依赖版本偏差导致的问题。先激活项目对应的虚拟环境,然后重新同步依赖:pip install -r requirements.txt(如果用requirements管理依赖),或者用poetry/pipenv这类工具同步。另外也检查下pytest版本:pytest --version,和团队其他人的版本对比下,不同版本的路径解析逻辑可能有差异。排查本地配置文件的干扰
看看项目目录下有没有pytest.ini、tox.ini或者.pytestrc这类本地配置文件,里面的testpaths或pythonpath配置可能覆盖了默认的路径规则。可以临时把这些文件重命名,再跑命令试试。另外用户级的pytest配置也可能有影响,比如Linux/macOS下的~/.config/pytest/pytest.ini,Windows下的C:\Users\<你的用户名>\AppData\Local\pytest\pytest.ini,可以暂时移走这个文件测试。检查文件权限与路径特殊字符
虽然你说文件没缺失,但本地的conftest.py可能存在权限问题?比如Linux/macOS下用ls -l path/to/conftest.py查看权限,确保当前用户有读取权限。另外一种少见情况:路径里有没有空格、中文或者非ASCII字符?pytest对这类特殊路径的处理偶尔会出问题,试试把仓库移到路径更简单的位置,比如C:\projects\myrepo或者~/projects/myrepo。清除缓存文件
pytest和Python生成的缓存文件可能导致奇怪的问题。删掉项目目录下的__pycache__文件夹、.pytest_cache文件夹,然后重新执行命令。用 verbose 模式看详细日志
执行pytest -v repo/tests/test_file.py,或者加上--debug参数生成调试日志,从日志里找更详细的路径解析信息,能帮你定位到底是哪里找不到conftest.py。
内容的提问来源于stack exchange,提问作者Marlo

