.pypirc 文件

.pypirc 文件允许你为包索引(这里称为“仓库”)定义配置,这样你就不必在使用 twineflit 上传包时每次都输入 URL、用户名或密码。

格式(最初由 distutils 包定义)是

[distutils]
index-servers =
    first-repository
    second-repository

[first-repository]
repository = <first-repository URL>
username = <first-repository username>
password = <first-repository password>

[second-repository]
repository = <second-repository URL>
username = <second-repository username>
password = <second-repository password>

distutils 部分定义了一个 index-servers 字段,列出了所有描述仓库的节的名称。

每个描述仓库的节都定义了三个字段

  • repository:仓库的 URL。

  • username:在仓库中注册的用户名。

  • password:用于验证用户名的密码。

警告

请注意,这会以纯文本形式存储你的密码。为了更好的安全性,请考虑使用其他替代方案,例如 keyring、设置环境变量或在命令行提供密码。

否则,请设置 .pypirc 的权限,以便只有你能查看或修改它。例如,在 Linux 或 macOS 上,运行

chmod 600 ~/.pypirc

常见配置

注意

这些示例适用于 twine。其他项目(例如 flit)也使用 .pypirc,但默认值不同。有关更多详细信息和使用说明,请参阅每个项目的文档。

Twine 的默认配置模拟了一个 .pypirc,其中包含 PyPI 和 TestPyPI 的仓库部分

[distutils]
index-servers =
    pypi
    testpypi

[pypi]
repository = https://upload.pypi.org/legacy/

[testpypi]
repository = https://test.pypi.org/legacy/

Twine 会将来自 $HOME/.pypirc、命令行和环境变量的其他配置添加到此默认配置中。

使用 PyPI 令牌

要设置你的 PyPI API 令牌,你可以创建一个类似于以下内容的 $HOME/.pypirc

[pypi]
username = __token__
password = <PyPI token>

对于 TestPyPI,添加一个 [testpypi] 部分,使用来自你的 TestPyPI 账户的 API 令牌。

使用另一个包索引

要配置其他仓库,你需要重新定义 index-servers 字段以包含仓库名称。这是一个包含 PyPI、TestPyPI 和私有仓库的 $HOME/.pypirc 的完整示例

[distutils]
index-servers =
    pypi
    testpypi
    private-repository

[pypi]
username = __token__
password = <PyPI token>

[testpypi]
username = __token__
password = <TestPyPI token>

[private-repository]
repository = <private-repository URL>
username = <private-repository username>
password = <private-repository password>

警告

除了使用 password 字段外,考虑使用 keyring(由 Twine 安装)安全地保存你的 API 令牌和密码

keyring set https://upload.pypi.org/legacy/ __token__
keyring set https://test.pypi.org/legacy/ __token__
keyring set <private-repository URL> <private-repository username>