一周前,我按照一些步骤将我的第一个python包发布到Python Packaging index(Python包索引)中,以下是我对我所遵循的快速、简单的过程的描述,你也可以这样做。
发布包的PyPi着陆页
首先,我们来学习什么是PyPi和 pip。
导入是什么?
我们用一个例子来解释这一点:当你将两个python文件(命名为file1.py和file2.py)放在同一个文件夹中时,你可以使用import关键字导入一个文件的代码,以便在另一个文件中使用;
这是因为你的当前目录总是PATH的一部分;在这里,你的程序会搜索导入的模块,以便在运行代码时使用它们。
什么是pip & PyPi?
PyPi是一个在线包注册中心,python包/模块被保存在这里,以便想要使用它们的用户可以轻松地下载它们。
它们都是使用pip下载的。
当你执行一个pip安装时,pip会从PyPi下载该包的Python文件并将其存储在你的计算机上。它们存储的位置通常在安装Python时会被添加到PATH中,因此,它们总是能被import命令看到,并且很容易被导入,以便在程序中使用。
我是如何找到灵感的
我当时在收听Mariatta Wijaya主持的播客(这里!https://archive.org/details/castalio-podcast-114 ),她讲述了她是如何在PyCon Cascades间隙开发出一个包项目tic-tok-taco-pizza的。她谈到了她是如何使用flit的,这是一个打包工具,与传统的打包方法相比,它使打包更轻巧更容易。
考虑到这一点,我决定将flit应用到我非常长的待办清单上的一个项目来尝试一下打包。
我为什么要创建一个包?
目前,从bmrs数据源返回的数据的唯一格式是XML。此项目旨在使用户能够以JSON/dict格式接收此数据,以便能更容易地进行处理。
添加必要内容:
建议包括:
一个好的README——在你的repo上提供一个你的项目的描述性概述。
如果这是一个协作/开源项目,则需要提供一份贡献指南——就其他感兴趣的团体如何贡献更改和提议提供建议。
一个requirements.txt文件——包含所需的模块和导入项。这可以通过运行以下命令(在你的虚拟环境中)来实现。
发布包的步骤
在PyPi注册一个免费帐户,并为下一步准备好密码。要安装flit包,请运行:
首先,定义你的主包文件,把它放在主目录中,并添加元数据(版本信息是必须的)和一个包说明的文档字符串:
然后,在你的项目目录中运行:
该命令将会询问你关于你的项目的细节,比如:
主页是包的网站,可以是一个到git repo的链接。
许可证:你可以在http://choosealicense.com/ 上查看不同类型的许可证。我为我们的开源项目选择了MIT许可证。成功完成此步骤会向你的项目目录中添加一个LICENSE文件和一个包含包元数据的pyproject.toml文件。
向你的pyproject.toml文件添加更多的元数据
访问https://buildmedia.readthedocs.org/media/pdf/flit/latest/flit.pdf 并从文档中的示例中查找可以添加到你的toml文件中的其他数据字段。
最后
现在,你可以使用以下命令将你的包发布到PyPi:
恭喜你!如果上面的所有步骤都成功了,那你现在就应该可以使用pip来安装你的包了。
你也可以在PyPi和Github上查看我发布的包。
注意:在重新发布一个包或推送更改之前,请始终记得修改版本号。
待办事项
使用Circle-CI启用包自动发布。
你现在难道还不准备发布自己的软件包吗?去发布吧,并在评论中分享它的链接!
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
本文作者是Cobblestone Energy limited的一个软件开发人员(顾问)、DevCKla的社区负责人、赛艇手、PyKampala的联合组织者。我对开发者社区、开源、旅行、阅读/写作和家庭充满热情!请随时在Facebook或Linkedin上联系我。
英文原文:https://medium.com/developer-circle-kampala/grow-your-python-how-i-published-my-first-python-package-to-pypi-162c3c709349
译者:好酒不上头
领取专属 10元无门槛券
私享最新 技术干货