开发与发布【Python包】的详细步骤+全程视频
如何开发Python的包?本文将介绍一种很好的且很简单的方法。如何开发Python的包?本文将介绍一种很好的且很简单的方法。如何开发Python的包?本文将介绍一种很好的且很简单的方法。
设定一个名称
Python包或模块的名称通常需要遵循以下条件:
*所有字母小写
*在pypi上没有同名的包(即使您不想公开提供您的包,您可能希望稍后将其私下指定为依赖项)1
*仅使用-符号或不使用符号(注意不能使用_)
1译者注:由于作者已将名为funniest的包上传,所以我们在设定名字时不能设置为funniest
创建框架
funniest的初始目录结构应该是这样的:
最高级的目录是我们软件配置管理仓库的根目录,比如funniest.git,同样叫funniest的子目录是实际的python模块。我们在__init__.py中写入一个joke()函数:
主设置配置文件setup.py应该包含一次对setuptools.setup()的调用:
现在我们可以在本地安装这个包.
我们还可以使用符号链接安装包,以便对系统上包的其他用户立即提供对源文件的更改:
在我们系统中使用相同Python的其他任何地方,接着做:
在PyPi上发布
setup.py文件也是我们在PyPI上注册包名称和上传源代码的主要入口点。输入下面的代码来“注册”你的包(这将会保存包的名称,上传包的元数据,并创建pypi.python.org网页):
如果您之前没有在PyPI上发布过内容,则需要先创建帐户。2下面的链接可以让您浏览PyPI上对于funniest的描述http://pypi.python.org/pypi/funniest/0.1
虽然用户可以用URL链接来查找我们的git存储库,但我们可能希望上传源代码,以便可以在不克隆存储库的情况下安装软件包。这还将使自动安装和依赖项解析工具能够安装我们的软件包。
首先创建一个资源分发:
这将在我们的顶级目录中创建dist/funniest-0.1.tar.gz。如果您愿意,请将该文件复制到另一台主机并尝试解压缩并安装它,来验证它是否符合要求。然后可以使用以下命令将该文件上传到PyPI3:
您可以组合所有这些步骤,更新元数据并在一个步骤中发布新文件:
想查看所有可用的setup.py命令的详细列表的话,请执行以下操作:
2译者注:注册的网址为 https://pypi.org/ 在pypi的网站上注册成功后,需要验证邮箱,否则后面无法上传包
3译者注:这条命令实际执行时有很多问题,推荐改为
pip install twine
twine upload dist/*
安装包
其他用户可以通过pip命令来安装这个funniest包:
其他用户可以将其指定为另一个包的依赖项,并在安装该包时自动安装。
添加附加文件
大多数情况下,我们需要在模块中包含多个包含代码的文件。应始终在内部funniest目录中添加其他文件。例如,让我们将一个函数移动到一个新的text子模块,因此我们的目录层次结构如下所示:
在__init__.py中这样写:
在text.py中这样写:
所有其他Python代码都属于该funniest/funniest/目录。
忽略文件(.gitignore等)
还有一个我们在包目录中必须含有的文件:.gitignore,或是相同作用的软件配置管理文件。Python构建系统创建了许多中间文件,我们要小心不要提交源代码的控制权。这是funniest的.gitignore文件看起来的样子:
【附】全程视频
<iframe class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=x0726xyczob&width=368&height=207&auto=0" width="368" height="207" data-vh="207" data-vw="368" style="display: none; width: 368px !important; height: 207px !important;"></iframe>
原文作者:Scott Torborg;来源:python docs
原文URL:http://python-packaging.readthedocs.io/en/latest/index.html
注:本文由李昊璟、朝乐门翻译、校对、排版,并补充制作了视频教程。同时,还调整和纠正了原文中的部分细节。
版权声明:本号内容部分来自互联网,转载请注明原文链接和作者,如有侵权或出处有误请和我们联系。
关联阅读
原创系列文章:
数据运营 关联文章阅读:
数据分析、数据产品 关联文章阅读:
80%的运营注定了打杂?因为你没有搭建出一套有效的用户运营体系
商务合作|约稿 请加qq:365242293
更多相关知识请回复:“ 月光宝盒 ”;
数据分析(ID : ecshujufenxi )互联网科技与数据圈自己的微信,也是WeMedia自媒体联盟成员之一,WeMedia联盟覆盖5000万人群。
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 1 为什么中国意味着确定性未来性 7904845
- 2 伊朗一港口发生高强度爆炸 7808868
- 3 多地宣布发钱奖励结婚 7712248
- 4 加关税降逆差为啥走不通 7618896
- 5 五一大量外国人涌入中国 7520577
- 6 山东一服务区现“沉睡5年”外地车辆 7424362
- 7 俄方称已收复库尔斯克 普京表态 7334150
- 8 拆二代败光5套房近4000万成阶下囚 7235415
- 9 47岁刘烨“瘦到皮包骨”引热议 7135399
- 10 泽连斯基公布与特朗普会晤细节 7045383