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

如何使用uv强制重新安装本地Python包,解决CI测试中的缓存更新问题?

如何使用uv强制重新安装本地Python包,解决CI测试中的缓存更新问题?

我最近开始用uv来做CI任务,它的性能比普通pip安装好太多了!每次CI运行时,都是Nox帮我创建虚拟环境来跑测试,我在环境里执行的命令是:

uv pip install .[test]

我的项目结构很简单,大概是这样:

my_package/
├── __init__.py
└── logic.py
docs/
├── index.rst
└── conf.py
test/
└── test_something.py
pyproject.toml
noxfile.py

但uv的缓存机制太“顽固”了,导致我的虚拟环境永远不会更新——每次跑测试都用旧的包,我没法验证新功能,除非完全重建虚拟环境。我想问问怎么才能让本地的.[test]每次都从源码重新安装?

我自己想到了三个可能的方案:

  • 总是用可编辑模式安装:uv pip install -e .[test]。但这对测试来说不太理想,因为没法验证wheel包是否包含了所有必要文件。
  • 在CI命令里强制重装:uv pip install --reinstall .[test]。但这样的话,所有依赖库的缓存都会失效,不只是我自己的包,有点浪费资源。
  • 在pyproject.toml里配置reinstall-package = ["."]。但我担心这会影响普通用户的正常安装,不想给他们添麻烦。

有没有我漏掉的其他办法?或者哪个选项的副作用最小,最适合测试场景?

备注:内容来源于stack exchange,提问作者Pierrick Rambaud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 08:45:29