我如何使用Flit将我的第一个Python包发布到PyPi

2019 年 8 月 16 日 Python程序员

一周前,我按照一些步骤将我的第一个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格式接收此数据,以便能更容易地进行处理。


添加必要内容:

建议包括:

  1.  一个好的README——在你的repo上提供一个你的项目的描述性概述。

  2. 如果这是一个协作/开源项目,则需要提供一份贡献指南——就其他感兴趣的团体如何贡献更改和提议提供建议。

  3. 一个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
译者:好酒不上头
登录查看更多
0

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
【电子书推荐】Data Science with Python and Dask
专知会员服务
42+阅读 · 2019年6月1日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Arxiv
3+阅读 · 2018年10月8日
Image Captioning based on Deep Reinforcement Learning
Arxiv
22+阅读 · 2018年8月30日
A Survey on Deep Transfer Learning
Arxiv
11+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2017年12月23日
VIP会员
相关资讯
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Top
微信扫码咨询专知VIP会员