依赖来源
新增于 0.2.0
通常 Rye 只从 PyPI 加载包。但是,可以指示它从其他索引加载包。
添加来源
可以将索引添加到项目或工作区(通过 pyproject.toml
)或添加到 全局配置 中。Rye 将始终同时查询这两个文件,其中 pyproject.toml
文件优先于全局配置。
每个来源都需要有一个唯一的名称。默认来源始终被称为 default
,并且默认指向 PyPI。
将此添加到 ~/.rye/config.toml
[[sources]]
name = "company-internal"
url = "https://company.internal/simple/"
将此添加到 pyproject.toml
[[tool.rye.sources]]
name = "company-internal"
url = "https://company.internal/simple/"
更改于 0.4.0
全局配置中的来源也用于工具安装。
索引类型
Rye 支持不同类型的来源,并且还允许覆盖 default
PyPI 索引。如果为另一个来源指定 default
作为名称,则 PyPI 将不再用于解析。
[[sources]]
name = "company-internal"
url = "https://company.internal/simple/"
type = "index" # this is implied
[[sources]]
name = "company-internal"
url = "https://company.internal/"
type = "find-links"
[[sources]]
name = "default"
url = "https://company.internal/simple/"
警告
请注意,默认索引不能是 find-links
类型。
来源类型
这两个来源类型(index
vs find-links
)由底层的 pip 基础设施决定
索引
这是一个 PEP 503 类型索引,由 PyPI 或 devpi 等工具提供。它对应于 pip 中的 --index-url
或 --extra-index-url
参数。
注意:有关使用多个索引的更多信息,请参阅 uv
文档。
find-links
这是一个可以是多种类型的来源,它必须指向一个文件路径或托管的 HTML 页面,该页面链接到包。它对应于 --find-links
参数。HTML 页面的格式是有一些未定义的,但通常所有指向 .tar.gz
或 .whl
文件的 HTML 链接都会被考虑。
索引身份验证
HTTP 基本身份验证支持索引身份验证。它可以通过两种方式提供。username
和 password
可以直接嵌入到配置中,也可以通过环境变量提供。
[[sources]]
name = "company-internal"
url = "https://company.internal/simple/"
username = "username"
password = "super secret"
[[sources]]
name = "company-internal"
url = "https://${INDEX_USERNAME}:${INDEX_PASSWORD}@company.internal/simple/"
SSL/TLS 验证
默认情况下,来源需要是 SSL/TLS 保护的。如果不是,rye 会拒绝使用该来源。可以通过将 verify-ssl
设置为 false
来覆盖此设置。
[[sources]]
name = "company-internal"
url = "http://company.internal/simple/"
verify-ssl = false