在pypi上快速發(fā)布你的python包

一 起因
起因很簡單,實驗室的小伙伴寫的新算法需要在論文發(fā)表的同時發(fā)布到的網(wǎng)上,因此有了以下的過程。
二 調(diào)用
第一步,package的發(fā)布需要再系統(tǒng)層面完成兩步:build包(用于package的打包)的安裝和系統(tǒng)命令twine(package的上傳)的安裝。
第二步:在發(fā)布官方注冊賬號,需要記住賬號與密碼,后面包上傳需要。
第三步,創(chuàng)建一個文件夾,內(nèi)部包含以下文件。

3.1 LICENSE文件用于體現(xiàn)發(fā)布包的許可,官方模板如下:
3.2 pyproject.toml文件用于指定發(fā)布包的系統(tǒng)要求和信息,打包過程中將被使用到。官方模板如下:
3.3 README.md文件,這應(yīng)該是每個程序員最最熟悉的文件了,主要用于介紹發(fā)布包的一些相關(guān)情況。
第四步:發(fā)布包的資源創(chuàng)建。這一步我們需要再src文件下創(chuàng)建發(fā)布包的文件夾。,如本例中發(fā)布包的名稱是add_example,所以src下就有一個同名的文件夾。

這個文件夾即是你需要打包的文件夾,里面通常包含兩個文件,如下:

其中__init__.py可以是空文件,而example.py文件則需要放入你所需要發(fā)布的函數(shù)。本例中需要發(fā)布的就是add_one函數(shù)(就是加1,雖然簡單,但也是最重要的數(shù)據(jù)定理)
第五步:回到src所在目錄,調(diào)用函數(shù)對包進行打包
打包之后,本目錄下會新建一個dist目錄(用于上傳發(fā)布的目錄)

dist文件夾中會出現(xiàn)兩個文件:add_example-0.0.1.tar.gz和add_example-0.0.1-py3-none-any.whl。

當然,在src的文件夾中也會出現(xiàn)一個新的以.egg-info為后綴的文件夾,如下。

只是該目錄下的文件對于發(fā)布包并沒有任何作用。

第六步:利用twine命令上傳,直到顯示所有上傳都已完成即可
上傳完畢之后,你就可以在https://test.pypi.org/中看到你自己的項目了(需要登錄)。

然后,你通過manage按鈕點進去你的project,可以看到

接著點擊0.0.1,可以看見你上傳的兩個文件

即使如此,你上傳的庫會一直存在,如本文上傳的庫,即可以再https://test.pypi.org/project/add-example/#description網(wǎng)站查詢到。登錄進去后,可以看到網(wǎng)頁,如下:

之后,可以直接從pip直接一鍵安裝的命令。
也可以將我們上傳的文件下載下來,在本地進行編譯。
小貼士1,上傳的whl文件可以直接本地安裝,從而查看上傳的包是否會出現(xiàn)bug
小貼士2:這一上傳最好是在linux中(上傳也會比較慢),因為我在windows中上傳的特別慢
所有的檢測都是為了最后能夠正式安裝,所以最后一步必然是上傳到最重要的官方庫中啦(正式版的pypi端)官方庫地址:https://pypi.org/manage/projects/
PS 做一個更正與補充:
《圖一樂:如何使用機器學(xué)習(xí)成為具有藝術(shù)天分的畫家》推文中的github庫為https://github.com/invoke-ai/InvokeAI,下載的模型來自https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
三 慣例小結(jié)
其實寫軟件的目的除了供自己用之外,最重要的目的應(yīng)該就是分享給大家使用了吧,亦或者商業(yè)化。不過對于論文而言,還是盡可能的希望開源吧,這樣才能快速提高,實現(xiàn)價值利用的最大化(不排斥商業(yè)化,畢竟人也是要吃飯的嘛),
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腳本撰寫,調(diào)用了部分依賴包,用戶首次使用需要安裝python以及對應(yīng)的包,安裝之后便可永久使用。
本公眾號開發(fā)的相關(guān)軟件,Multi-omics Hammer軟件和Multi-omics Visual軟件歡迎大家使用。文末是本公眾號在其他平臺的賬戶,也歡迎大家關(guān)注并多提意見。
簡書:WJ的生信小院
公眾號:生信小院
博客園:生信小院
最后,也歡迎各位大佬能夠在本平臺上:1傳播和講解自己發(fā)表的論文;2:發(fā)表對某一科研領(lǐng)域的看法;3:想要達成的合作或者相應(yīng)的招聘信息;4:展示自己以尋找博后工作或者博士就讀的機會;5:博導(dǎo)提供博后工作或者博士攻讀機會,都可以后臺給筆者留言。希望本平臺在進行生信知識分享的同時,能夠成為生信分析者的交流平臺,能夠?qū)崿F(xiàn)相應(yīng)的利益互補和雙贏(不一定能實現(xiàn),但是夢想總得是有的吧)。
另外,怎么說呢,投幣也可,不強求,但奢求。?


