摘要:準(zhǔn)備注冊(cè)賬號(hào)很顯然地要在上注冊(cè)一個(gè)賬號(hào)。最終的代碼結(jié)構(gòu)打包上傳在的同級(jí)目錄下運(yùn)行以下命令。大功告成之后我們就可以在里搜索到自己的庫了,當(dāng)然也可以直接通過安裝。
背景
最近興趣使然寫了幾個(gè)Python庫,也發(fā)布到了Pypi上,雖然沒什么人下載,但自己在其他機(jī)器上用著也會(huì)很方便。這里我向大家介紹一下如何在Pypi上發(fā)表自己的Python庫。
很顯然地要在Pypi上注冊(cè)一個(gè)賬號(hào)。
安裝必要的庫 setuptools原則上安裝了pip的環(huán)境都有setuptools,但并不影響你去嘗試升級(jí)一下它。
pip install --upgrade setuptoolstwine
這是一個(gè)簡化將庫發(fā)布到Pypi上流程的工具,具體的使用之后會(huì)講到。
pip install --upgrade setuptools克隆倉庫(推薦)
大名鼎鼎的requests庫的作者大神kennethreitz為大家準(zhǔn)備了一個(gè)倉庫作為一個(gè)setup.py的很好的模板,當(dāng)然你也可以自己手寫setup.py。
git clone https://github.com/kennethreitz/setup.py
建議大家直接編輯之前的倉庫里的setup.py, 只需要修改一些必要的配置就可以了。這是我最近編寫的庫condition_chain的配置。
... # Package meta-data. NAME = "condition_chain" DESCRIPTION = "Process a series of conditional judgement with a chained call." URL = "https://github.com/duyixian1234/condition_chain" EMAIL = "duyixian1234@outlook.com" AUTHOR = "Yixian Du" # What packages are required for this module to be executed? REQUIRED = [ # "requests", "maya", "records", ] ...編寫核心代碼
接下來我們就可以編寫自己的代碼了,要注意源代碼文件夾(倉庫里的my_package文件夾)的名字與setup.py里配置的包名(Name)要一致。
另外在重新上傳之前我們要修改__version__.py里的版本號(hào),以免覆蓋了以前的上傳(相信會(huì)有人是需要之前版本的庫的)。
最終的代碼結(jié)構(gòu)
│ LICENSE │ MANIFEST.in │ README.rst │ setup.py │ └─condition_chain core.py __init__.py __version__.py
在setup.py的同級(jí)目錄下運(yùn)行以下命令。
python setup.py sdist bdist_wheel
然后運(yùn)行
twine upload dist/*
注意要輸入Pypi賬號(hào)和密碼。
之后我們就可以在Pypi里搜索到自己的Python庫了,當(dāng)然也可以直接通過pip安裝。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/40989.html
摘要:表示,這是首次在上傳至的惡意軟件中發(fā)現(xiàn)這種技術(shù)。軟件開發(fā)和版本控制平臺(tái)還透露,它解決了注冊(cè)表中的多個(gè)缺陷,這些缺陷可能會(huì)泄露私有包的名稱,并允許攻擊者繞過身份驗(yàn)證,在不需要任何授權(quán)的情況下發(fā)布任何包的版本。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflo...
摘要:學(xué)習(xí)我們已經(jīng)感受到他的強(qiáng)大之處,內(nèi)置模塊和強(qiáng)大的第三方模塊,省去了我們重復(fù)造輪子的過程,誰沒有一顆想造輪子的心,今天來發(fā)布一個(gè)自己的輪子先解釋下是官方的第三方庫的倉庫,所有人都可以下載第三方庫或上傳自己開發(fā)的庫到。 學(xué)習(xí)Python我們已經(jīng)感受到他的強(qiáng)大之處,內(nèi)置模塊和強(qiáng)大的第三方模塊,省去了我們重復(fù)造輪子的過程,but 誰沒有一顆想造輪子的心,今天來發(fā)布一個(gè)自己的輪子 先解釋下PyP...
摘要:正式的專欄第篇,同學(xué)站住,別錯(cuò)過這個(gè)從開始的文章前面學(xué)委的入門到精通專欄積累了篇文章,當(dāng)然學(xué)委博客還有幾十篇應(yīng)用的文章。 正式的Python專欄第9篇,同學(xué)站住...
摘要:然而時(shí)不時(shí)會(huì)遇上網(wǎng)絡(luò)不好,下載個(gè)包要花很久,甚至超時(shí)無法下載的情況。在命令提示符控制臺(tái)中,輸入,進(jìn)入此目錄在該目錄下新建名為的文件夾,然后在其中新建文件。 任何一個(gè)信息都可以把人分為兩類,知道的和不知道的。有些我們已知的信息,自己覺得很平常,卻可能對(duì)另一些不知道的人來說很有用處。 比如今天要說的這個(gè)小技巧,我自己原以為不值一提,網(wǎng)上也很容易搜到。但當(dāng)數(shù)次我把這個(gè)告訴別人后,對(duì)方驚呼 這...
摘要:眾所周知的原因,國內(nèi)訪問國外網(wǎng)站總是不那么順暢,于是就有了鏡像,國內(nèi)有很多,我用過阿里云的,中科大的,豆瓣的。阿里云的同步的好像不夠及時(shí),中科大的好像很及時(shí),所以我就用中科大的。而通過可以指定當(dāng)個(gè)文件作為包。 showImg(https://segmentfault.com/img/bVbsjki?w=742&h=487); pip install的東西從哪里來的? 從PyPI (Py...
閱讀 3121·2021-11-24 10:22
閱讀 3123·2021-11-23 10:10
閱讀 1457·2021-09-28 09:35
閱讀 1818·2019-08-29 13:16
閱讀 1465·2019-08-26 13:29
閱讀 2859·2019-08-26 10:27
閱讀 738·2019-08-26 10:09
閱讀 1524·2019-08-23 18:05