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

如何在pyproject.toml中添加私有PyPI源的Python包依赖?

如何在pyproject.toml中按PEP 508规范添加私有PyPI索引的依赖包?

你当前的写法存在问题:mypackage1@http://myprivatepypiserver/simple/会让pip把索引服务器地址当成包的直接下载URL,而非从该索引搜索安装包,必然导致安装失败。

按照PEP 508规范,正确的写法有两种,可按需选择:

方式一:在依赖项中直接指定索引地址

在dependencies数组里,给mypackage1添加索引条件,明确告诉工具从指定私有索引拉取该包:

[project]
name = "mypackage2"
version = "0.0.1"
dependencies = [
    "pandas",
    "mypackage1; index-url='http://myprivatepypiserver/simple/'"
]

注意toml的引号规则:外层用双引号包裹整个依赖字符串,内层索引地址用单引号,避免转义冲突。

方式二:全局配置私有索引(适用于多个依赖都来自同一私有源)

如果你的项目有多个依赖都托管在这个私有PyPI,可以单独配置索引,再声明依赖:

[project]
name = "mypackage2"
version = "0.0.1"
dependencies = [
    "pandas",
    "mypackage1"
]

[tool.pip.indexes]
private_pypi = { url = "http://myprivatepypiserver/simple/" }

[tool.pip.index-urls]
# 让pip同时搜索公共PyPI和私有索引
public_and_private = ["https://pypi.org/simple", "private_pypi"]

这种方式下,pip会自动从配置的索引中查找mypackage1,无需在每个依赖项里重复写索引地址。

额外提示

如果私有索引需要身份认证,可以把认证信息嵌入URL(注意不要提交到版本控制,建议用环境变量替代硬编码):

"mypackage1; index-url='http://your_username:your_password@myprivatepypiserver/simple/'"

验证配置是否正确的方法:在项目根目录执行pip install .,查看pip是否能成功从私有索引拉取mypackage1并完成安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:01:11