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

使用uv运行pytest出现Python版本不符警告,如何解决?

Python版本与依赖警告问题排查与解决

问题根源分析

出现这种版本不一致的情况,大概率是虚拟环境隔离不彻底或者某个依赖/工具偷偷调用了系统全局的Python包:

  • 全局安装的pytest或测试依赖没被uv虚拟环境覆盖,导致加载了系统Python3.9的certifi模块
  • 环境变量PYTHONPATH被设置过,强制Python加载全局路径下的包
  • certifi作为系统级依赖被某些工具间接调用,绕过了uv的虚拟环境

解决步骤

1. 重建并确保虚拟环境隔离

先删除旧虚拟环境,重新创建适配Python3.12.5的环境:

uv venv --python 3.12.5

重新安装所有依赖(包括pytest),确保所有工具都在虚拟环境内:

uv pip install -r requirements.txt
uv pip install pytest

再次执行测试:

uv run pytest

2. 检查并清理干扰性环境变量

查看是否有PYTHONPATH指向系统Python路径:

echo $PYTHONPATH

如果输出包含/usr/local/lib/python3.9/site-packages,临时清空后测试:

unset PYTHONPATH
uv run pytest

如果有效,建议在shell配置文件(如~/.bashrc或~/.zshrc)中移除相关PYTHONPATH设置。

3. 锁定certifi版本并强制重装

在requirements.txt中明确指定适配Python3.12的certifi版本:

certifi>=2024.6.2

强制重新安装依赖,确保加载虚拟环境内的certifi:

uv pip install -r requirements.txt --force-reinstall

4. 确认pytest安装位置

检查pytest是否在虚拟环境内:

uv run which pytest

若输出指向全局路径(如/usr/local/bin/pytest),卸载全局pytest:

pip uninstall pytest -y

再用uv重新安装:

uv pip install pytest

内容的提问来源于stack exchange,提问作者fedest

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:29:59