函式庫

函式庫 #

在本章節中,您將會學習如何使您的函式庫能透過 Poetry 進行安裝。

版本控制 #

對於所有專案,Poetry 都要求必須符合 PEP 440 版本規範。

雖然 Poetry 沒有強制規定採用任何版本的公約,不過在 PEP 440 的範疇內,它向來都鼓勵採用 語意化版本控制,此外,它也支援特別適用於語意化版本控制的 版本約束條件

注意
舉例來說,1.0.0-hotfix.1 不符合 PEP 440 的規範。您可以改用 1.0.0-post11.0.0.post1

鎖定檔 #

您可以選擇提交 poetry.lock 檔,以供您的函式庫在需要時使用。這樣可以協助您的團隊持續測試相同版本的相依性。不過,這個鎖定檔並不會對任何依賴它的專案造成影響。它只會影響主要專案本身。

如果您不想提交鎖定檔,而且您正在使用 git,請將它加入 .gitignore

封裝 #

在實際發佈您的函式庫之前,您需要先將它封裝起來。

poetry build

這個指令會將您的函式庫封裝成兩種不同的格式:sdist(原始碼格式),以及 wheel(已編譯的套件)。

建立套件時,Poetry 會自動包含一些元資料檔。在建立 wheel 時,以下檔案會包含在 .dist-info 目錄中

  • LICENSE
  • LICENSE.*
  • COPYING
  • COPYING.*
  • LICENSES/**

建立 sdist 時,以下檔案會包含在根目錄中

  • LICENSE*

完成建置後,即可發布程式庫。

發布到 PyPI #

好的,現在你可以發布套件。

Poetry 預設會發布到 PyPI。發布到 PyPI 的所有內容,都可以透過 Poetry 自動取得。由於 pendulum 位於 PyPI,我們可以依賴它,而不用指定任何其他存放庫。

如果我們想和 Python 社群分享 poetry-demo,我們也可以發布到 PyPI。這非常容易。

poetry publish

這將封裝程式庫並將其發布到 PyPI,前提是你已經註冊成為使用者,並且已 正確設定你的憑證

注意

publish 指令預設不會執行 build

如果你想同時建置和發布你的套件,只需傳遞 --build 選項即可。

完成此步驟後,你的程式庫將對所有人開放。

發布到私人存放庫 #

有時,你可能想讓你的程式庫保持私密性,但團隊成員也能存取。

這種情況下,你必須使用私人存放庫。

要發布到私人存放庫,你需要將其新增到存放庫的全球清單中。有關詳細資訊,請參閱 新增存放庫

完成此步驟後,你實際上就可以這樣發布到存放庫

poetry publish -r my-repository