如何使用uv移除项目依赖库但保留pyproject.toml中的源配置行
如何使用uv移除项目依赖库但保留pyproject.toml中的源配置行
我太懂这个痛点了!每次给本地的mylib更新依赖后,得移除再重新添加才能让项目识别到新依赖,结果uv remove连[tool.uv.sources]里的配置行都给删掉,每次都要重新写一遍路径,真的烦。
这里有两个实用的方法帮你解决这个问题,还有一个能直接跳过移除步骤的小技巧:
方法一:手动修改配置+同步(彻底移除依赖但保留源配置)
如果确实需要把mylib从项目依赖中移除,但想留下源配置方便后续重新添加:
- 打开项目根目录的
pyproject.toml文件 - 找到
[project.dependencies]区块(如果mylib是可选依赖,就找对应的[project.optional-dependencies]子区块),删掉里面的mylib条目 - 保存文件后,在终端运行:
uv sync
这个命令会同步你的依赖变更,把mylib从虚拟环境中彻底移除,但完全不会改动[tool.uv.sources]里的配置行。之后你要重新添加mylib时,直接跑uv add mylib就行,源配置已经在那儿了。
方法二:用uv sync --exclude临时移除(保留依赖声明)
如果你只是想临时把mylib从当前虚拟环境中移除,但还想保留pyproject.toml里的依赖声明和源配置:
直接在终端运行:
uv sync --exclude mylib
这个命令会让uv在同步依赖时跳过mylib,相当于把它从虚拟环境中移除,但不会修改任何配置文件。之后要恢复的话,直接跑uv sync不带参数就可以了。
额外技巧:不用移除也能刷新依赖
其实你完全不用每次都走移除再添加的流程!当你更新了mylib的依赖后,直接在项目目录运行:
uv sync --refresh mylib
这个命令会强制刷新mylib的所有依赖,同步它的最新配置,一步到位,而且完全不会动你的源配置行,连Jupyter kernel重启都可能省了(不过保险起见还是重启下更好)。
备注:内容来源于stack exchange,提问作者robertspierre
相关产品推荐
相关产品推荐

