1. 程式人生 > >開發與釋出【Python包】的詳細步驟

開發與釋出【Python包】的詳細步驟

1.設定一個名稱

Python包或模組的名稱通常需要遵循以下條件:

所有字母小寫

在pypi上沒有同名的包(即使您不想公開提供您的包,您可能希望稍後將其私下指定為依賴項)1

僅使用-符號或不使用符號(注意不能使用_)

1譯者注:由於作者已將名為funniest的包上傳,所以我們在設定名字時不能設定為funniest

2.建立框架

funniest的初始目錄結構應該是這樣的:

image

最高階的目錄是我們軟體配置管理倉庫的根目錄,比如funniest.git,同樣叫funniest的子目錄是實際的python模組。我們在__init__.py中寫入一個joke()函式:

image

主設定配置檔案setup.py應該包含一次對setuptools.setup()的呼叫:

image

現在我們可以在本地安裝這個包.

image

我們還可以使用符號連結安裝包,以便對系統上包的其他使用者立即提供對原始檔的更改:

image

在我們系統中使用相同Python的其他任何地方,接著做:

image

3.在PyPi上釋出

setup.py檔案也是我們在PyPI上註冊包名稱和上傳原始碼的主要入口點。輸入下面的程式碼來“註冊”你的包(這將會儲存包的名稱,上傳包的元資料,並建立pypi.python.org網頁):

image

如果您之前沒有在PyPI上釋出過內容,則需要先建立帳戶。2下面的連結可以讓您瀏覽PyPI上對於funniest的描述

雖然使用者可以用URL連結來查詢我們的git儲存庫,但我們可能希望上傳原始碼,以便可以在不克隆儲存庫的情況下安裝軟體包。這還將使自動安裝和依賴項解析工具能夠安裝我們的軟體包。

首先建立一個資源分發:

image

這將在我們的頂級目錄中建立dist/funniest-0.1.tar.gz。如果您願意,請將該檔案複製到另一臺主機並嘗試解壓縮並安裝它,來驗證它是否符合要求。然後可以使用以下命令將該檔案上傳到PyPI3:

image

您可以組合所有這些步驟,更新元資料並在一個步驟中釋出新檔案:

image

想檢視所有可用的setup.py命令的詳細列表的話,請執行以下操作:

image

2譯者注:註冊的網址為 https://pypi.org/ 在pypi的網站上註冊成功後,需要驗證郵箱,否則後面無法上傳包
3譯者注:這條命令實際執行時有很多問題,推薦改為

pip install twine 
twine upload dist/*

4.安裝包

其他使用者可以通過pip命令來安裝這個funniest包:

image

其他使用者可以將其指定為另一個包的依賴項,並在安裝該包時自動安裝。

5.新增附加檔案

大多數情況下,我們需要在模組中包含多個包含程式碼的檔案。應始終在內部funniest目錄中新增其他檔案。例如,讓我們將一個函式移動到一個新的text子模組,因此我們的目錄層次結構如下所示:

image

在__init__.py中這樣寫:

image

在text.py中這樣寫:

image

所有其他Python程式碼都屬於該funniest/funniest/目錄。

6.忽略檔案(.gitignore等)

還有一個我們在包目錄中必須含有的檔案:.gitignore,或是相同作用的軟體配置管理檔案。Python構建系統建立了許多中間檔案,我們要小心不要提交原始碼的控制權。這是funniest的.gitignore檔案看起來的樣子:

image