You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何配置UV Python依赖管理器在本地开发环境中忽略指定依赖以避免被卸载

如何配置UV Python依赖管理器在本地开发环境中忽略指定依赖以避免被卸载

看起来你遇到的是uv sync的「环境一致性」特性导致的问题——uv默认会让虚拟环境严格匹配pyproject.toml里的依赖配置,所以不在配置清单里的已安装包会被自动卸载。针对你本地构建的rusty_crates PyO3绑定包,有两种靠谱的解决方法:

方法一:将本地包加入依赖配置(推荐)

rusty_crates以本地依赖的形式写入pyproject.toml的依赖列表,这样uv会明确识别它是项目的依赖项,不会再尝试卸载。你只需要根据包的实际位置指定路径即可:

比如,假设你的rusty_crates源码或构建产物(如wheel文件)在项目根目录的./rusty_crates文件夹下,修改dependencies部分:

dependencies = [
    # 保留原有的所有依赖...
    "rusty_crates @ file://./rusty_crates",
]

如果是用maturin构建的PyO3包,直接指向源码目录即可,uv会自动处理安装逻辑;如果有现成的wheel文件,也可以直接指向wheel的路径。

方法二:配置UV保留指定已安装包

如果你只是临时在本地测试,不想把rusty_crates加入正式依赖清单,可以通过uv的配置让它在sync时保留这个已安装包。修改[tool.uv]区块,添加preserve-installed选项:

[tool.uv]
preserve-installed = ["rusty_crates"]
dev-dependencies = ["ipykernel>=6", "pytest>=8", "ruff>=0", "maturin>=1"]

这个选项的作用是告诉uv:即便这些包不在pyproject.toml的依赖列表里,也不要从虚拟环境中移除它们。

小提示

两种方法里更推荐第一种,因为它能明确记录项目的依赖关系,其他开发者接手项目时也能清晰知道需要这个本地包;第二种更适合临时的本地测试场景。

备注:内容来源于stack exchange,提问作者Kevin Li

火山引擎 最新活动