配置.pypirc文件,方便Python打包
PyPI 是 Python 包索引。其目的是帮助 Python 开发人员查找和安装 Python 社区开发的软件。
我最近构建了我的第一个 Python 包patter,并通过 PyPI 公开发布。在此过程中我遇到了一些小问题,所以我写这篇文章是为了帮助那些处于类似位置的人。
这篇文章将描述 .pypirc 文件的基础知识以及如何配置和保护它。我最初为Truveris Engineering 博客写了这篇文章,我在这里重新发布它以扩大影响范围。
入门
在继续之前,最好确保setuptools和wheel库是最新的。如果需要,以下命令将更新它们:
$ pip install -U setuptools wheel
进入全屏模式 退出全屏模式
这篇文章将假设你有一个可以发布的新 Python 库。应使用如下命令打包源代码。根据包的需要,您的命令可能会略有不同。
$ python setup.py sdist bdist_wheel
进入全屏模式 退出全屏模式
要阅读有关创建可分发 Python 包的更多信息,请参阅这些文档。
在下一节中,我使用twine实用程序来帮助发布我的新包。您可以在此处阅读twine相对于内置打包工具的好处。使用以下命令安装twine:
$ pip install twine
进入全屏模式 退出全屏模式
.pypirc 文件
使用.pypirc文件有两个主要好处:
-
推送到 PyPI 时无需输入用户名/密码。
-
它简化了将包推送到非默认包存储库(即 pypi.org 以外的任何地方)时的命令行使用。
关于.pypirc文件的官方文档可以在这里找到。我的.pypirc文件的内容如下所示。该文件必须放在$HOME/.pypirc中,pip/twine 才能使用它。
[distutils]
index-servers=
pypi
testpypi
[pypi]
username: brodan
password: xxxxxxxxxxxxxxxx
[testpypi]
repository: https://test.pypi.org/legacy/
username: brodan
password: yyyyyyyyyyyyyyyy
进入全屏模式 退出全屏模式
请记住,pypi.org和test.pypi.org未集成,因此您需要在每个站点上创建一个单独的帐户。
上面要注意的一件事是[pypi]部分没有配置repository,但testpypi部分有。那是因为repository变量默认为https://upload.pypi.org/legacy/,所以它不需要包含在该部分中。
上传Python包
一旦上面的文件就位,--repository标志现在可以与twine一起使用来指定您的包将被上传到哪个包存储库:
如果您希望将包上传到 TestPyPI 存储库,则应使用以下命令:
$ twine upload --repository testpypi dist/*
进入全屏模式 退出全屏模式
同样,一旦包准备好向公众发布,应使用以下内容:
$ twine upload --repository pypi dist/*
进入全屏模式 退出全屏模式
请注意,运行上述任一命令时都不会提示您输入密码。您也不再需要将存储库 URL 复制并粘贴到终端中。
保护 .pypirc 文件
由于.pypirc文件以纯文本形式存储敏感信息(即密码),因此必须相应地设置此文件的权限,以便系统上的其他用户无法访问此文件。
为此,请运行以下命令:
$ chmod 600 ~/.pypirc
进入全屏模式 退出全屏模式
上面的命令将确保只有文件所有者(应该是您自己的用户)才能读取和写入该文件。有关 UNIX 中文件权限的其他信息,请参见此处的。感谢这个 StackOverflow 回答以获得本节的帮助。
结束
有了.pypirc文件,将 Python 包推送到公共存储库的过程现在要容易得多。
如果您对这篇文章有任何问题或反馈,请通过电子邮件或Twitter与我联系。谢谢阅读!
更多推荐


所有评论(0)