在pypi上快速發(fā)布你的python包-修正版

一 起因
在之前的推文中有介紹過如何在pypi上打包發(fā)布python package,然而,真正打包的時候卻發(fā)現(xiàn)過程并不是那么順暢。因此,本次將推出一個補(bǔ)充版,方便相應(yīng)的讀者在遇到這一問題時進(jìn)行修正或者避坑(所以說,關(guān)注本公眾號,技術(shù)的傳播不僅僅只有講解,還有持續(xù)更新)。二 修正過程
Let's start。一開始,筆者是在windows系統(tǒng)中進(jìn)行python的打包(打包時的路徑與src相同)。然而,打包后tar.gz文件將系統(tǒng)的絕對路徑打包到壓縮包中,即在src文件夾下打包的文件實(shí)際上是包含src -> F -> temp ->?package_name -> src->?package_name這一路徑的。而打包后壓縮文件內(nèi)路徑應(yīng)該是從package_name -> package_name
然而,打包后tar.gz文件將系統(tǒng)的絕對路徑打包到壓縮包中,即在src文件夾下打包的文件實(shí)際上是包含src -> F -> temp -> package_name -> package_name這一路徑的。因此,引用包時,需要下面的操作才能實(shí)現(xiàn)函數(shù)的調(diào)用(顯然不合理)。
而筆者希望打包后壓縮文件內(nèi)路徑應(yīng)該是從package_name ->?package_name,這樣在安裝相應(yīng)的模塊之后,只需要通過輸入以下命令即可實(shí)現(xiàn)函數(shù)的調(diào)用(簡單清爽)。
因此,在多次嘗試后,筆者發(fā)現(xiàn)在linux/ubtuntu系統(tǒng)中打包才能避免這種現(xiàn)象的發(fā)生。因此,下文打包方法的示例均是在ubtuntu環(huán)境中完成的。
首先,創(chuàng)建一個新目錄用于python包安裝。這樣做的主要目的是為了防止不同python包間的相互影響,具體可見之前的推文《如何不污染服務(wù)器的python的包環(huán)境》
其次,必然是創(chuàng)建下載包的安裝目錄啦(pypi_install),至于原因嘛,在之前的推文《如何不污染服務(wù)器的python的包環(huán)境》里有解釋。
第三,安裝打包所必須的依賴包
第四,就是將需要發(fā)布的包打包(build)
最后,上傳即可(twine命令)。
不過,這里也有兩個小貼士:
1 在ubtuntu系統(tǒng)下使用python3打包的速度非常慢,且可能出現(xiàn)無法上傳的現(xiàn)象。但是采用python進(jìn)行上傳,則無比的絲滑(然而,我的python和python3都是同一版本,略顯神奇,有懂得大神可以指導(dǎo)一下)
2 ?如果讀者之前曾上傳過同樣的包,那么后續(xù)再上傳的時候則會出現(xiàn)報(bào)錯。此時,有兩種解決方法:一是刪除原有包(不建議),另外一種則是發(fā)布迭代版本,比如從0.0.1迭代到0.02再發(fā)布。
三 慣例小結(jié)
上述教程只是算是對前一篇推文的補(bǔ)充。然而,即使這樣,也可能無法避免疏漏。另外,筆者能力有限,所提供的方法也不一定是最簡便的(對于筆者而言,目前用起來還不錯)。因此,本公眾號也歡迎其他大神可以不吝賜教。
本公眾號開發(fā)的相關(guān)軟件,Multi-omics Hammer軟件和Multi-omics Visual軟件歡迎大家使用。文末是本公眾號在其他平臺的賬戶,也歡迎大家關(guān)注并多提意見。
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:因?yàn)楸拒浖怯胮ython腳本撰寫,調(diào)用了部分依賴包,用戶首次使用需要安裝python以及對應(yīng)的包,安裝之后便可永久使用。
本公眾號開發(fā)的相關(guān)軟件,Multi-omics Hammer軟件和Multi-omics Visual軟件歡迎大家使用。文末是本公眾號在其他平臺的賬戶,也歡迎大家關(guān)注并多提意見。
簡書:WJ的生信小院
公眾號:生信小院
博客園:生信小院
最后,也歡迎各位大佬能夠在本平臺上:1傳播和講解自己發(fā)表的論文;2:發(fā)表對某一科研領(lǐng)域的看法;3:想要達(dá)成的合作或者相應(yīng)的招聘信息;4:展示自己以尋找博后工作或者博士就讀的機(jī)會;5:博導(dǎo)提供博后工作或者博士攻讀機(jī)會,都可以后臺給筆者留言。希望本平臺在進(jìn)行生信知識分享的同時,能夠成為生信分析者的交流平臺,能夠?qū)崿F(xiàn)相應(yīng)的利益互補(bǔ)和雙贏(不一定能實(shí)現(xiàn),但是夢想總得是有的吧)。
另外,怎么說呢,投幣也可,不強(qiáng)求,但奢求。?


