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

如何通过poetry.config添加PyPI私有源以安装私有依赖

问题核心原因

  1. 配置项作用域理解偏差:Poetry的repositories.<repo-name>配置仅用于包发布场景,依赖安装阶段的源检索默认不会读取该配置项。
  2. 配置名称不匹配:你给出的示例中,私有源命名为my-repo,但配置http认证时用的名称是repo,二者名称不一致导致认证失败,私有源无法正常访问,所以解析器找不到对应版本的私有包。
  3. 旧配置冲突:如果之前存在同名称的无效源配置、缓存的源索引信息,也会导致拉包失败。

适配多环境的解决方案

因为你需要在测试、生产环境使用不同的源地址,不建议把源地址写死在pyproject.toml中,推荐以下两种方案:

方案一:环境变量注入(最优)

不需要修改任何项目文件,在不同环境部署时直接设置对应环境变量即可,Poetry会自动读取:

# 替换MY_REPO为你的私有源名称,值为对应环境的源地址
export POETRY_REPOSITORIES_MY_REPO_URL="https://当前环境的私有源地址/simple"
# 配置对应源的认证信息
export POETRY_HTTP_BASIC_MY_REPO_USERNAME="你的用户名"
export POETRY_HTTP_BASIC_MY_REPO_PASSWORD="你的密码"

配置完成后直接执行poetry install或poetry update即可正常拉取私有包。

方案二:本地config命令配置

如果是本地开发环境使用,按照以下步骤配置即可:

  1. 先清理旧的冲突配置
poetry config repositories.my-repo --unset
poetry config http-basic.my-repo --unset
  1. 重新配置,全程保持源名称一致
# 配置私有源地址
poetry config repositories.my-repo "https://私有源地址/simple"
# 配置认证信息,http-basic后必须和上面的源名称完全一致
poetry config http-basic.my-repo 你的用户名 你的密码
# 可选:设置该源为优先拉取源,避免优先从公共PyPI拉包
poetry config repositories.my-repo.priority "default"
  1. 执行poetry config --list确认所有配置项正确后,再执行poetry update即可。

清空重设生效的原因

你之前的配置存在http认证名称和源名称不匹配的问题,清空旧配置后重新配置时名称保持了一致,同时清理了旧的无效缓存配置,所以可以正常拉包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:54:04