首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打造轮子上传到PYPI

我们经常以pip install package的形式安装python包,很多新同鞋有这样的疑问:怎样编写python包(自己造轮子)分享给别人,让别人也可以用pip的形式进行安装使用呢?

要解决这个问题我们要从两方面入手:

写一个python包

规范包的内容上传到PYPI

编写一个python包

为了言之有物我们决定编写一个能解决实际应用的包:

很多时候我们使用linux集群为了安全考虑在登录节点和计算节点不能连接互联网,只能由某个计算节点切换到跳转节点,在跳转节点才能访问互联网。为了使这种连续跳转节点执行命令的操作更加简洁容易,我们决定编写一个叫multiJump的包。

首先我们编写好单独的脚本https://github.com/seqyuan/multiJump/blob/master/multiJump/multiJump.py

其实我们要把multiJump.py作为一个模块供其他程序例如sendmail.py使用,只需要把multiJump.py放在sendmail.py相同的目录下,然后在sendmail.py里写下 就能使用multiJump.py里的类或者函数。

要使multiJump作为一个包存在,我们还需要搭配一定的目录结构,__init__.py可以是个空文件:

规范包的内容上传到PYPI

详细的规范请见官方网页https://docs.python.org/2/distutils/setupscript.html,要符合上传到PYPI的规范,我们还需要对前面构建的multiJump目录结构再做一些调整。

我们可以看到新的目录结构多了3个文件:

COPYING.txt就是授权文件,里面是你关于这个包的授权,比如:MIT license,那么你里面放入MIT License全文即可,这个License获得方式可以在PYPI上搜一个你记得名字的包,把它的COPYING.txt直接copy过来就行。当然,如果你不清楚这个License是什么意思,你完全可以不要这个文件。

README.rst对于包的说明文件,推荐用rst格式编写(因为不支持markdown)

setup.py核心文件

来看看setup.py是怎么写的:

setup里各参数的详细说明:

上传到PYPI前操作

在官网注册一个PYPI账号https://pypi.org/account/register/创建用户验证文件 ~/.pypirc

上传并完成发布

上传命令

上传结果

https://pypi.org/project/multiJump/

上传到PYPI之后就能用 安装到自己的python库了

multiJump使用方法

可参见https://github.com/seqyuan/multiJump/wiki我用它做的第一件应用是跳转到end节点发送邮件。欢迎下载并使用

参考文章:

https://segmentfault.com/a/1190000008663126

https://zhuanlan.zhihu.com/p/26159930

微信号

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504G1I8B700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券