.pypirc
文件#
.pypirc
文件允许您定义 包索引(此处称为“存储库”)的配置,以便您在使用 twine 或 flit 上传包时不必输入 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 的默认配置模拟了一个 .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>