.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 字段以包含存储库名称。以下是 $HOME/.pypirc 的完整示例,适用于 PyPI、TestPyPI 和私有存储库

[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>