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

安装时能否切换路径依赖的develop模式?生产环境部署方案

生产环境处理本地路径依赖的正确姿势

1. 用环境变量一键切换所有依赖的develop模式

最省心的方式是在pyproject.toml里给本地依赖的develop属性加个环境变量开关,不用每次手动修改配置:

把原来的依赖配置改成这样:

[tool.poetry.dependencies]
mylib = { path = "../../libs/mylib", develop = "${DEVELOP_MODE:-true}" }
# 多个本地库可以统一用这个变量
another-lib = { path = "../../libs/another-lib", develop = "${DEVELOP_MODE:-true}" }

这里${DEVELOP_MODE:-true}的逻辑是:如果未设置DEVELOP_MODE环境变量,默认启用开发模式;生产环境只需设置该变量为false,再执行安装命令即可:

DEVELOP_MODE=false poetry install --no-dev

这样所有本地依赖都会从编辑模式转为正常安装,直接把库的内容复制到项目虚拟环境中,无需手动操作。

2. 直接用Poetry命令参数(适合临时场景)

如果不想修改pyproject.toml,可以使用--no-directory参数,但要注意:这个参数会让Poetry忽略所有路径依赖的本地路径,转而尝试从PyPI拉取对应包。如果你的本地库未上传到PyPI,这个方法就不适用,更适合有私有源的场景:

poetry install --no-dev --no-directory

3. 构建wheel包安装(生产环境最稳定方案)

如果追求生产环境的绝对稳定性,建议先把本地库打包成wheel文件,再作为本地包依赖安装:

  1. 进入本地库目录,执行打包命令:
cd ../../libs/mylib
poetry build

这会在dist目录生成类似mylib-0.1.0-py3-none-any.whl的文件。
2. 修改项目的pyproject.toml,把路径依赖换成wheel文件依赖:

mylib = { file = "../../libs/mylib/dist/mylib-0.1.0-py3-none-any.whl" }

之后执行poetry install --no-dev,Poetry会直接把wheel包的内容复制到虚拟环境,完全脱离原本地库的路径限制,也不用担心开发模式的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:26:02