国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

發(fā)布你自己的輪子 - PyPI打包上傳實踐

sunny5541 / 610人閱讀

摘要:推薦遵循語義化版本號規(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 upload
error: 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

相關(guān)文章

  • Python發(fā)布自己模塊到Pypi

    摘要:學(xué)習(xí)我們已經(jīng)感受到他的強大之處,內(nèi)置模塊和強大的第三方模塊,省去了我們重復(fù)造輪子的過程,誰沒有一顆想造輪子的心,今天來發(fā)布一個自己的輪子先解釋下是官方的第三方庫的倉庫,所有人都可以下載第三方庫或上傳自己開發(fā)的庫到。 學(xué)習(xí)Python我們已經(jīng)感受到他的強大之處,內(nèi)置模塊和強大的第三方模塊,省去了我們重復(fù)造輪子的過程,but 誰沒有一顆想造輪子的心,今天來發(fā)布一個自己的輪子 先解釋下PyP...

    zsy888 評論0 收藏0
  • 利用setuptools發(fā)布Python程序到PyPI,為Python添磚加瓦

    摘要:眾所周知的原因,國內(nèi)訪問國外網(wǎng)站總是不那么順暢,于是就有了鏡像,國內(nèi)有很多,我用過阿里云的,中科大的,豆瓣的。阿里云的同步的好像不夠及時,中科大的好像很及時,所以我就用中科大的。而通過可以指定當(dāng)個文件作為包。 showImg(https://segmentfault.com/img/bVbsjki?w=742&h=487); pip install的東西從哪里來的? 從PyPI (Py...

    IntMain 評論0 收藏0
  • 如何在Pypi上發(fā)表自己Python庫

    摘要:準(zhǔn)備注冊賬號很顯然地要在上注冊一個賬號。最終的代碼結(jié)構(gòu)打包上傳在的同級目錄下運行以下命令。大功告成之后我們就可以在里搜索到自己的庫了,當(dāng)然也可以直接通過安裝。 背景 最近興趣使然寫了幾個Python庫,也發(fā)布到了Pypi上,雖然沒什么人下載,但自己在其他機器上用著也會很方便。這里我向大家介紹一下如何在Pypi上發(fā)表自己的Python庫。 準(zhǔn)備 注冊賬號 很顯然地要在Pypi上注冊一個...

    nihao 評論0 收藏0
  • 結(jié)合自己輪子實踐按需加載

    摘要:原文地址為了探究按需加載的本質(zhì),選擇了對先前造的輪子進行實驗。下文就來揭開面紗,并動手改造項目,最終目標(biāo)是用第二種寫法實現(xiàn)按需加載,減小打包體積。下面給出種可以按需加載的方案。 原文地址 為了探究按需加載的本質(zhì),選擇了對先前造的輪子 diana 進行實驗。 實驗一:全量引用 import * as _ from diana 打包體積結(jié)果如下: showImg(http://oqhtsc...

    Alfred 評論0 收藏0
  • 10秒鐘構(gòu)建自己”造輪子”工廠! 2019年github/npm工程化協(xié)作開發(fā)棧最佳實踐

    摘要:年工程化協(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...

    dongfangyiyu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<