Py学习  »  Python

亲自动手写一个python库(二)

马哥Linux运维 • 6 年前 • 472 次点击  


引言


经过上一节中所述,我们搭建好了一个Python环境用于库开发,我们在这一节真正开始搭建一个库,并将其发布。


项目文档结构


首先我们先构建出自己项目的文档结构,首先是LICENSE和README.md,这两个文件并不是必要的,但是最好将其加上,方便别人了解你的项目。README.md是关于本项目的介绍,LICENSE是表示该项目所遵循的开源协议,一般MIT用的比较多,其他协议你可以百度谷歌了解一下。


接下来是打包库需要的一些文件,主要有MANIFEST.in和setup.py两个文件。MANIFEST.in表示打包时不会被自动包含进去的附加文件清单。setup.py是打包程序配置文件,需要设置一些选项。此外,setup.cfg是包含setup.py额外配置信息的文件,我没有用到这其中的设置,所以本项目中其是空的。


caafinder文件夹就是我们要写的Python程序,我们要注意这个文件夹里必须有__init__.py这个文件。



下面是一下setup.py的一些简单配置选项,详细请参考官方文档。



可以参考一下:

  • PyPA sample project这是一个官方示例库结构。

  • Python Packaging User Guide这是Python打包的官方英文文档。


关于模块


模块也就是库,我们自己写程序时,通常通过import XX来导入一个需要的模块,在Python中,一个py文件就是一个模块,如一个abc.py的文件就是一个名字叫abc的模块。


你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package),包是一个带有__init__.py的文件夹,如图中文档所示,我们有一个包caafinder,因为它的子级有一个__init__.py,包caafinder拥有database和workspace两个模块。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是caafinder。



程序打包


通过执行下列语句来进行打包:



其中xxx可以是下列几种方式中其中一个:



举个例子:



此时在根目录出现了dist文件夹,里面有name-version.tar.gz这个文件,这就是我们要发布到PyPI的压缩包了。


发布到PyPI


首先我们需要在PyPI上注册一个帐号,并在本地用户根目录下创建文件~/.pypirc,这样以后就不需要输入帐号密码了。



接下来,需要在PyPI网站上注册一个项目,网站提供三种方式注册,选择一种即可,最简单的是通过上传打包时生成的PKG-INFO文件,生成项目信息。此步骤只需在第一次发布时操作。


接下来就是最后一步,上传打包好的库。我们这里是用twine,如果环境中没有安装,需要先采用pip install twine安装即可。



此时在网页上就可以看到自己的源代码包啦,并且可以通过使用pip install packagename,就可以使用我们自己写的Python库了。



祝大家玩的开心,希望大家能到Github上帮忙点个赞。


作者:Gutierrez

来源:http://www.jianshu.com/p/81d20ccf5d13




————广告时间————


马哥教育2018年Python自动化运维开发实战面授班2018年3月5号开班,马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才

扫描二维码领取学习资料

更多Python好文请点击【阅读原文】哦

↓↓↓


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/GB9nX5yRGg
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4690
 
472 次点击