.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 字段以包含仓库名称。这是一个包含 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>