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

使用Poetry时如何避免pyproject.toml暴露私有仓库地址

解决方案

完全不需要将私有仓库地址硬编码到pyproject.toml提交到版本库,Poetry原生支持两种不暴露内部地址的配置方式:

方式1:使用Poetry本地配置(推荐本地开发使用)

Poetry的源配置可以不写入pyproject.toml,而是存储在用户全局配置文件(类Unix系统路径为~/.config/pypoetry/config.toml,Windows路径为%APPDATA%\pypoetry\config.toml),或者项目本地的poetry.toml中,其中poetry.toml可以直接加入.gitignore规则,不会被提交到版本库。
直接执行以下命令添加源即可:

# 全局配置第一个私有源地址
poetry config repositories.my_private_repo_1 https://my_private_repo1.com/simple
# 全局配置第二个私有源地址
poetry config repositories.my_private_repo_2 https://my_private_repo2.com/simple
# 设置第一个私有源为默认下载源
poetry config repositories.default my_private_repo_1

如果只想让配置对当前项目生效,在上述命令末尾加--local参数即可,配置会写入项目根目录下的poetry.toml,不会修改全局配置,也不会改动pyproject.toml内容。

方式2:使用环境变量配置(推荐CI/CD或多环境场景使用)

Poetry原生支持通过环境变量指定仓库地址,完全不需要修改任何项目内的配置文件。
环境变量命名规则为POETRY_REPOSITORIES_<源名称全大写>_URL,对应你的两个私有源,需要配置的环境变量如下:

# 第一个私有源地址
POETRY_REPOSITORIES_MY_PRIVATE_REPO_1_URL=https://my_private_repo1.com/simple
# 第二个私有源地址
POETRY_REPOSITORIES_MY_PRIVATE_REPO_2_URL=https://my_private_repo2.com/simple

如果需要指定默认源,额外配置一个环境变量即可:

# 将my_private_repo_1设置为默认下载源
POETRY_DEFAULT_REPOSITORY=my_private_repo_1

团队成员只需要在本地shell配置文件、或者CI流水线的环境变量配置中写入上述值,就能正常拉取私有包,pyproject.toml可以直接提交到版本库,不会泄露任何内部服务地址。

注意:如果你之前已经在pyproject.toml中写过[[tool.poetry.source]]相关配置,需要先把这些段落全部删除,避免不同位置的配置产生冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:31:07