Python语言的厉害之处在哪里?个人认为在于它强大的内置模块和丰富的第三方库,可以帮助我们进行快速开发,毕竟是站在巨人的肩膀上。每天用大神写好的轮子开发,但自己造轮子的心一直躁动不已。最近静极思动,着手做一个好用的工具包开源一下,所以对Python发布包到pypi的流程研究了一下,这里做一下简单整理记录。当然由于Python更新发展速度很快,PyPI的发布机制也不断更新,可能方法会生效,有需要的话可以参考官网文档。
PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库。PyPI可帮助您查找和安装Python社区开发和共享的软件。包作者使用PyPI来分发他们的软件 。
一 注册PyPI账号
登录PyPI官网,注册界面基本如上图,填写个人信息即可注册。
二 创建个人Python库
有了账号我们也要准备好要分享的Python库,具体功能自己把握,只要是你觉得好玩好用的都可以上传。
三 编辑setup.py文件
在你要发布的包目录下创建setup.py文件,并参照如下内容进行编辑。
from distutils.core import setup
setup(
name = '下载的模块名', #要和包源代码文件名一致
version = '1.1.0',
py_modules = ['你的轮子名'],
author = '注册的账号',
author_email = 'xiaoming@163.com',
url = '一个地址,比如github轮子下载地址啥的 ',
description = '轮子的描述'
)
fromdistutils.coreimportsetup
setup(
name='下载的模块名',#要和包源代码文件名一致
version='1.1.0',
py_modules=['你的轮子名'],
author='注册的账号',
author_email='xiaoming@163.com',
url='一个地址,比如github轮子下载地址啥的 ',
description='轮子的描述'
)
setup脚本是python中使用Distutils来构建、分发以及安装模块活动的中心。它的目的是使得软件可以正确安装。
这里setup.py文件可以自行创建,也可以使用Kennethreitz大神(requests库的作者)的模板,使用的方法是:
git clone https://github.com/kennethreitz/setup.py
1
gitclonehttps://github.com/kennethreitz/setup.py
四 安装必要工具库
pip install --upgrade setuptools #原则上有pip一定有setuptools,但是可以尝试升级一下
pip install twine #一个简化将库发布到PyPI流程的工具
pipinstall--upgradesetuptools#原则上有pip一定有setuptools,但是可以尝试升级一下
pipinstalltwine#一个简化将库发布到PyPI流程的工具
五 打包上传
python setup.py sdist
pythonsetup.pysdist
sdist将会在setup.py同级目录创建一个dist文件夹,里面是压缩文件(Unix平台将会是tar包,Windows系统中将会是Zip压缩文件),这其中包含你的setup.py安装脚本和你的包模块。然后就可以解压安装了:
python setup.py install
pythonsetup.pyinstall
setup.py参数简单介绍:
python setup.py build # 编译
python setup.py install #安装
python setup.py sdist #生成压缩包(zip/tar.gz)
python setup.py bdist_wininst #生成NT平台安装包(.exe)
python setup.py bdist_rpm #生成rpm包
python setup.py bdist –help-formats #支持rpm、gztar、bztar、ztar、tar、wininst、zip
然后需要安装twine,并使用twine上传到PyPI。
#安装twine
pip install twine
#上传
twine upload dist/* #需要输出PyPI账号密码
#安装twine
pipinstalltwine
#上传
twineuploaddist/*#需要输出PyPI账号密码
OK,完成,现在就可以直接通过pip来安装自己发布的库使用了。