摘要:推薦遵循語義化版本號規(guī)則,簡單說就像這樣作者姓名和郵箱地址不一定要和你的賬號一致。上傳并完成發(fā)布你可以任選以下兩種方式之一發(fā)布你的輪子。文件已經(jīng)存在了,你每一次上次都應(yīng)該更新版本號。
本文僅討論上傳相關(guān)的步驟,關(guān)于如何給寫一個setup.py 請參閱官方文檔:
https://docs.python.org/2/dis...
上傳前的注意事項假設(shè)你的包已經(jīng)開發(fā)完成,并且根目錄必須要有一個setup.py。
最好有一個README.rst 用來描述你的輪子,雖然這不是必須的,但文檔就像內(nèi)褲,你最好還是要有的。
如果你需要打包代碼文件夾以外的文件,比如版權(quán)信息等等,你還需要寫一個 MANIFEST.in。
關(guān)于setup.py的補充說明name 必須是唯一的,允許使用數(shù)字和字母,推薦使用中劃線(-)而不是下劃線(_),因為pip安裝只支持中劃線,比如pip install my-pkg,為了不給自己找麻煩請聽話。
version推薦遵循語義化版本號規(guī)則,簡單說就像這樣:1.2.0
作者姓名和郵箱地址不一定要和你的PyPI賬號一致。
測試本地打包命令如果上面的都沒問題,在本地目錄執(zhí)行以下命令應(yīng)該能成功在dist目錄下生成*.tar.gz的包文件。
python setup.py sdist上傳并發(fā)布包文件到PyPI 創(chuàng)建 PyPI賬號
非常簡單,直接通過官網(wǎng)注冊 https://pypi.python.org/pypi?..., 但是需要驗證郵件并確認(rèn)激活。
創(chuàng)建用戶驗證文件 ~/.pypirc在自己的用戶目錄下新建一個空白文件命名為.pypirc,內(nèi)容如下:
[distutils] index-servers=pypi [pypi] repository = https://upload.pypi.org/legacy/ username =password =
用戶名和密碼就是上一步驟所創(chuàng)建的,直接明文輸入。如果你覺得明文密碼不安全也可以留空,在后面的上傳過程中會提示你手動輸入。
注冊你的包你需要到PyPI注冊并驗證你的包,之后才能開始真正上傳,注冊的方式有以下幾種。
使用命令python setup.py register,最簡單但官網(wǎng)不推薦,因為使用的是HTTP未加密,有可能會被攻擊人嗅探到你的密碼。
通過PyPI網(wǎng)站提交表單完成注冊驗證。
安裝 pip install twine 然后在通過命令 twine register dist/mypkg.whl 完成注冊。
上傳并完成發(fā)布你可以任選以下兩種方式之一發(fā)布你的輪子。
使用命令:python setup.py sdist upload,還是和上面一樣,簡單但有安全隱患,目前已淘汰。
使用 twine: twine upload dist/*
管理你的包如果你的包已經(jīng)上傳成功,那么當(dāng)你登錄PyPI網(wǎng)站后應(yīng)該能在右側(cè)導(dǎo)航欄看到管理入口。
點擊包名進去后你可以對你的包進行管理,當(dāng)然你也可以從這里刪除這個包。
讓別人使用你的包包發(fā)布完成后,其他人只需要使用pip就可以安裝你的包文件。比如:
pip install package-name
如果你更新了包,別人可以可以通過--update參數(shù)來更新:
pip install package-name --update可能遇到的錯誤 Upload failed (403): Invalid or non-existent authentication information.
錯誤的用戶驗證信息,你需要創(chuàng)建一個用戶驗證文件 ~/.pypirc。請參閱上文。
Upload failed (403): You are not allowed to edit "xxx" package information你需要先注冊你的包才可以開始上傳,運行注冊命令:python setup.py register
Server response (401): Incomplete registration; check your email你的PyPI賬戶還沒完成郵箱驗證,你需要去注冊郵箱找到一封驗證郵件完成驗證后再重試失敗的步驟。
Server response (400): Invalid classifier "Topic :: Software Development :: Utilities"你的setup.py文件中的classifier信息有誤,請按官網(wǎng)的正確分類書寫classifier.
error: No dist file created in earlier command你還沒打包就開始了上傳命令,建議打包和上傳的操作放在一起做,比如:
python setup sdist uploaderror: Upload failed (499): Client Disconnected
這應(yīng)該是網(wǎng)絡(luò)問題,多重試幾次。
Upload failed (400): File already exists文件已經(jīng)存在了,你每一次上次都應(yīng)該更新版本號。
參考文檔https://packaging.python.org/...
關(guān)于作者:Python技術(shù)愛好者,目前從事測試開發(fā)相關(guān)工作,轉(zhuǎn)載請注明原文出處。歡迎關(guān)注我的博客 https://betacat.online,你可以到我的公眾號中去當(dāng)吃瓜群眾。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38501.html
摘要:學(xué)習(xí)我們已經(jīng)感受到他的強大之處,內(nèi)置模塊和強大的第三方模塊,省去了我們重復(fù)造輪子的過程,誰沒有一顆想造輪子的心,今天來發(fā)布一個自己的輪子先解釋下是官方的第三方庫的倉庫,所有人都可以下載第三方庫或上傳自己開發(fā)的庫到。 學(xué)習(xí)Python我們已經(jīng)感受到他的強大之處,內(nèi)置模塊和強大的第三方模塊,省去了我們重復(fù)造輪子的過程,but 誰沒有一顆想造輪子的心,今天來發(fā)布一個自己的輪子 先解釋下PyP...
摘要:眾所周知的原因,國內(nèi)訪問國外網(wǎng)站總是不那么順暢,于是就有了鏡像,國內(nèi)有很多,我用過阿里云的,中科大的,豆瓣的。阿里云的同步的好像不夠及時,中科大的好像很及時,所以我就用中科大的。而通過可以指定當(dāng)個文件作為包。 showImg(https://segmentfault.com/img/bVbsjki?w=742&h=487); pip install的東西從哪里來的? 從PyPI (Py...
摘要:準(zhǔn)備注冊賬號很顯然地要在上注冊一個賬號。最終的代碼結(jié)構(gòu)打包上傳在的同級目錄下運行以下命令。大功告成之后我們就可以在里搜索到自己的庫了,當(dāng)然也可以直接通過安裝。 背景 最近興趣使然寫了幾個Python庫,也發(fā)布到了Pypi上,雖然沒什么人下載,但自己在其他機器上用著也會很方便。這里我向大家介紹一下如何在Pypi上發(fā)表自己的Python庫。 準(zhǔn)備 注冊賬號 很顯然地要在Pypi上注冊一個...
摘要:原文地址為了探究按需加載的本質(zhì),選擇了對先前造的輪子進行實驗。下文就來揭開面紗,并動手改造項目,最終目標(biāo)是用第二種寫法實現(xiàn)按需加載,減小打包體積。下面給出種可以按需加載的方案。 原文地址 為了探究按需加載的本質(zhì),選擇了對先前造的輪子 diana 進行實驗。 實驗一:全量引用 import * as _ from diana 打包體積結(jié)果如下: showImg(http://oqhtsc...
摘要:年工程化協(xié)作開發(fā)棧最佳實踐我們將花半小時實戰(zhàn)擼一個包含,的標(biāo)準(zhǔn)的用于工程協(xié)作的包開發(fā)棧。使用腳手架,秒鐘構(gòu)建可自由配置的開發(fā)棧。分別表示詢問彈窗自動執(zhí)行任務(wù)執(zhí)行任務(wù)后操作。 發(fā)起一個github/npm工程協(xié)作項目,門檻太高了!! 最基礎(chǔ)的問題,你都要花很久去研究: 如何在項目中全線使用es2017代碼? 答案是babel 如何統(tǒng)一所有協(xié)作者的代碼風(fēng)格? 答案是eslint + pr...
閱讀 3464·2021-11-18 10:02
閱讀 3707·2021-09-13 10:25
閱讀 1920·2021-07-26 23:38
閱讀 2568·2019-08-30 15:44
閱讀 2268·2019-08-30 13:51
閱讀 1223·2019-08-26 11:35
閱讀 2273·2019-08-26 10:29
閱讀 3444·2019-08-23 14:56