欢迎光临散文网 会员登陆 & 注册

在pypi上快速发布你的python包

2022-12-01 13:32 作者:生信小院  | 我要投稿


一 起因

起因很简单,实验室的小伙伴写的新算法需要在论文发表的同时发布到的网上,因此有了以下的过程。
二 调用

第一步,package的发布需要再系统层面完成两步:build包(用于package的打包)的安装和系统命令twine(package的上传)的安装。

第二步:在发布官方注册账号,需要记住账号与密码,后面包上传需要。


第三步,创建一个文件夹,内部包含以下文件。


3.1 LICENSE文件用于体现发布包的许可,官方模板如下:

3.2 pyproject.toml文件用于指定发布包的系统要求和信息,打包过程中将被使用到。官方模板如下:

3.3 README.md文件,这应该是每个程序员最最熟悉的文件了,主要用于介绍发布包的一些相关情况。

第四步:发布包的资源创建。这一步我们需要再src文件下创建发布包的文件夹。,如本例中发布包的名称是add_example,所以src下就有一个同名的文件夹。


这个文件夹即是你需要打包的文件夹,里面通常包含两个文件,如下:


其中__init__.py可以是空文件,而example.py文件则需要放入你所需要发布的函数。本例中需要发布的就是add_one函数(就是加1,虽然简单,但也是最重要的数据定理)

第五步:回到src所在目录,调用函数对包进行打包

打包之后,本目录下会新建一个dist目录(用于上传发布的目录)


dist文件夹中会出现两个文件:add_example-0.0.1.tar.gz和add_example-0.0.1-py3-none-any.whl。


当然,在src的文件夹中也会出现一个新的以.egg-info为后缀的文件夹,如下。


只是该目录下的文件对于发布包并没有任何作用。


第六步:利用twine命令上传,直到显示所有上传都已完成即可

上传完毕之后,你就可以在https://test.pypi.org/中看到你自己的项目了(需要登录)。


然后,你通过manage按钮点进去你的project,可以看到


接着点击0.0.1,可以看见你上传的两个文件


即使如此,你上传的库会一直存在,如本文上传的库,即可以再https://test.pypi.org/project/add-example/#description网站查询到。登录进去后,可以看到网页,如下:

之后,可以直接从pip直接一键安装的命令。

也可以将我们上传的文件下载下来,在本地进行编译。

小贴士1,上传的whl文件可以直接本地安装,从而查看上传的包是否会出现bug

小贴士2:这一上传最好是在linux中(上传也会比较慢),因为我在windows中上传的特别慢

所有的检测都是为了最后能够正式安装,所以最后一步必然是上传到最重要的官方库中啦(正式版的pypi端)官方库地址:https://pypi.org/manage/projects/

PS 做一个更正与补充:

《图一乐:如何使用机器学习成为具有艺术天分的画家》推文中的github库为https://github.com/invoke-ai/InvokeAI,下载的模型来自https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

三 惯例小结

其实写软件的目的除了供自己用之外,最重要的目的应该就是分享给大家使用了吧,亦或者商业化。不过对于论文而言,还是尽可能的希望开源吧,这样才能快速提高,实现价值利用的最大化(不排斥商业化,毕竟人也是要吃饭的嘛),

Multi-omics Hammer软件下载地址:

https://github.com/wangjun258/Multi-omics-Hammer

Multi-omics Visual软件下载地址:https://github.com/wangjun258/Multi_omics_Visual/releases/tag/Multi_omics_Visual_v1.03

PS:因为本软件是用python脚本撰写,调用了部分依赖包,用户首次使用需要安装python以及对应的包,安装之后便可永久使用。

本公众号开发的相关软件,Multi-omics Hammer软件和Multi-omics Visual软件欢迎大家使用。文末是本公众号在其他平台的账户,也欢迎大家关注并多提意见。

简书:WJ的生信小院

公众号:生信小院

博客园:生信小院

最后,也欢迎各位大佬能够在本平台上:1传播和讲解自己发表的论文;2:发表对某一科研领域的看法;3:想要达成的合作或者相应的招聘信息;4:展示自己以寻找博后工作或者博士就读的机会;5:博导提供博后工作或者博士攻读机会,都可以后台给笔者留言。希望本平台在进行生信知识分享的同时,能够成为生信分析者的交流平台,能够实现相应的利益互补和双赢(不一定能实现,但是梦想总得是有的吧)。

另外,怎么说呢,投币也可,不强求,但奢求。 


在pypi上快速发布你的python包的评论 (共 条)

分享到微博请遵守国家法律