很多开发者想知道怎么发布自己的python库,那么小编就通过这篇文章来教会大家,如果大家有需要的话一定要耐心阅读完这篇文章,相信大家耐心阅读完之后一定能够有所提升!
我们开发者可以利用python官方的第三方库PyPI来发布自己开发的Python库。具体方法是:1、新建一个项目文件夹和主程序;2、选择合适的开源证书;3、编写setup.py文件和使用文档;4、发布。
主体程序编写:
一般来说,自己造轮子无非是处于两种目的,一是现有的轮子不能满足自己的需求,二是为了锻炼自己的能力,在这里,我们就不去编写一个有实际用途的轮子了,请根据你自己的需求自行编写。
下面的主体程序代码仅供示例,演示如何上传自己的项目:新建一个项目文件夹,mypackage,初始化成git仓库。
新建主程序,test.py:
__version__ = '0.1.0'"""实现你自己的轮子的功能"""def main(): passif __name__ == '__main__': main()
编写完成之后,将其上传至Github,或其他代码托管平台,然后选择合适的开源证书。
任何一个开源项目都应当选择一个开源许可证,没有 License 的内容是默认会被版权保护。所以如果你想要的是让大家都放心使用,就需要选择一个合适的 License ,只有这样才能赋予任何人使用,分享和修改这个软件的权力。
总结一下就是:
MIT是最自由的,没有任何限制,任何人都可以售卖你的开源软件,甚至可以用你的名字促销。BSD 和 Apache 协议也很自由,跟 MIT 的区别分别是不允许用作者本人名义促销和保护作者版权。GPL 最为霸道,对代码的修改部分也必须是 GPL 的,同时基于 GPL 代码而开发的代码也必须按照 GPL 发布,MPL 相对温和一些,如果后续开发的代码中添加了新文件,同时新文件中也没有用到原来的代码,那么新文件可以不必继续沿用 MPL 。一般来说,如果选择MIT 协议就可以了。
编写setup.py
setup.py是每个能从PyPi上能下载到的库都有的文件,它是发布的关键所在。
网上的大部分教程都很复杂,新手很难看懂怎么编写,好在kennethreitz大神帮我们解决了这个难题,他编写了一个for human的setup.py模板,项目地址:传送门,我们只需要把它复制过来,修改自己项目需要的地方即可,不需要额外的编写setup.cfg等其他文件。
项目的配置信息:
# Package meta-data. NAME = 'mypackage' DESCRIPTION = '填写你的项目简短描述. 'URL = 'https://github.com/你的github账户/mypackage' EMAIL = 'me@example.com' # 你的邮箱 AUTHOR = 'Awesome Soul' # 你的名字 REQUIRES_PYTHON = '>=3.6.0' # 项目支持的python版本 VERSION = '0.1.0' # 项目版本号 项目的依赖库(没有就不填) # What packages are required for this module to be executed? REQUIRED = [ # 'requests', 'maya', 'records', ]
setup部分:
这里大部分内容都不用你填,只有以下几个注意点需要注意的是long_description这里默认是你项目的README.md文件
注释掉的entry_points部分是用来生成命令行工具或者GUI工具的(理论上是跨平台的),比如这里我生成了一个test的命令来代替test.py的main函数,安装成功以后就可以直接使用“test”命令:
python entry_points={ 'console_scripts': ['test=test:main'], },
如果你的项目文件夹下只有一个py文件来实现你的功能的话,需要将packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]),注释掉,然后取消py_modules的注释并进行相应修改。
编写使用文档
一个好的项目,是需要有一个条理清晰的文档的,至于如何编写,就看你在README.md里怎么发挥了。然后我们发布即可
先去 https://pypi.org 注册一个属于自己的账号,记下账号密码。由于我们之前编写好了setup.py,这里只要在项目的文件夹下运行python setup.py upload即可,中间需要你输入账号密码。
至此,一个项目已经上传完毕了,只需pip install mypackage即可使用,下面扩展一下聊聊,怎么进行后续的维护。
项目的维护升级有更新升级之后,首先要运行如下命令删除dist文件夹中的旧版本打包文件,然后生成新文件:sudo python setup.py sdist之后,输入以下命令,上传新版本即可:python setup.py upload