如何使用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
相关产品推荐
相关产品推荐

