新手指南:Python Poetry 套件管理工具簡介

更新日期: 2025 年 2 月 14 日

在 Python 開發中,管理套件和依賴專案是一個重要且繁瑣的部分。

Poetry 是一個現代化的 Python 依賴管理和打包工具。

它不僅可以輕鬆地管理項目的依賴關係,還能幫助你打包和發布 Python 應用或庫。

為什麼使用 Poetry?

Poetry 的主要優點是簡化了項目依賴的管理過程,並提供了更清晰的項目配置。

相比於傳統的 pip 和 virtualenv,Poetry 將依賴管理、虛擬環境和打包工具結合在一起,使得項目管理更加方便。

Poetry 的特點

依賴管理

Poetry 可以精確地鎖定項目依賴的版本,避免不同版本之間的衝突。

簡單的項目配置

使用 pyproject.toml 文件,來管理專案配置和依賴專案。

自動創建虛擬環境

Poetry 自動為每個項目創建和管理虛擬環境,避免全局依賴的混亂。

輕鬆發布套件

Poetry 內建功能可以幫助你,將自己的項目打包並發布到 PyPI。

如何安裝 Poetry

Poetry 可以透過多種方式安裝,以下是幾種常見的方法:

使用官方安裝腳本

你可以使用官方提供的安裝腳本來安裝 Poetry:

curl -sSL https://install.python-poetry.org | python3 -

補充:curl -sSL 是什麼意思

什麼是 curl

curl(Client URL)是一個命令行工具,用於透過各種網路協議(如 HTTP、HTTPS、FTP)從或向伺服器傳輸資料。

它通常用來下載文件、發送 API 請求,甚至與遠端伺服器進行數據交互。

在這裡,curl -sSL 主要是用來下載 Poetry 安裝腳本,並透過 | python3 - 讓 Python 直接執行下載的腳本。

什麼是 SSL?

SSL(Secure Sockets Layer)是一種網路安全協議,用於加密 HTTP 資料傳輸,確保資料在伺服器與用戶端之間傳輸時不被第三方攔截。

現在大多數網站都使用 TLS(Transport Layer Security),但很多時候仍然沿用「SSL」這個名稱。

在這個 curl 命令中,-sSL 確保 curl 會透過 安全的 HTTPS 連線 下載 Poetry 安裝腳本,避免中間人攻擊(MITM attack)或惡意修改下載內容。

整個指令的作用
curl -sSL https://install.python-poetry.org | python3 -

這條指令的作用是:

  1. 透過 curl 下載 Poetry 安裝腳本(從官方網站 https://install.python-poetry.org)。
  2. -sSL 確保下載過程中保持安靜(但仍顯示錯誤)並支援 HTTP 跳轉。
  3. 下載的內容透過 |(管道符號)直接傳遞給 python3 執行,相當於: python3 install_script.py 但這裡 install_script.py 來自 curl 下載的內容,而不是本地文件。

這樣就能直接安裝 Poetry,而無需手動下載、存檔和執行腳本。

使用 pip 安裝

如果你已經安裝了 Python,Poetry 也可以通過 pip 安裝:

pip install poetry

安裝完成後,執行以下命令來確認是否安裝成功:

poetry --version

使用 Poetry 建構和管理專案

Poetry 提供了幾種不同的方式來建立 Python 項目:

1️⃣ 使用 poetry new(適用於快速建立標準結構的專案)

poetry new my_project

poetry new my_project 這個指令會自動生成一個包含基本目錄結構與 pyproject.toml 文件的專案。

2️⃣ 使用 poetry init(適用於已有目錄的專案)

poetry init

這將在當前目錄中初始化一個 pyproject.toml 文件,並引導你逐步設置專案的基本資訊和依賴項。

3️⃣ 使用 poetry init --no-interaction(適用於快速初始化專案)

poetry init --no-interaction

這與 poetry init 類似,但會跳過互動式設置,直接生成 pyproject.toml 文件,適合自動化腳本或批量建立專案。


安裝依賴

Poetry 讓你可以輕鬆管理專案的依賴項,例如安裝 requests 套件:

poetry add requests

這將自動更新 pyproject.tomlpoetry.lock,確保依賴版本一致。

如果需要安裝開發環境專屬的依賴,可以使用 --dev 選項:

poetry add --dev pytest

啟動虛擬環境

Poetry 會自動管理虛擬環境,使用以下命令可以啟動它:

poetry shell

若要在 Poetry 管理的虛擬環境中執行 Python 腳本,可以使用:

poetry run python my_script.py

延伸閱讀:poetry shell 命令已消失?Poetry 2.0.1 改用 poetry env activate


鎖定與更新依賴

Poetry 使用 poetry.lock 文件來確保所有依賴的版本固定不變,以保持專案在不同環境中的一致性。

重新生成 poetry.lock

如果你手動修改了 pyproject.toml,可以執行以下指令來重新解析並更新 poetry.lock

poetry lock

這將根據 pyproject.toml 重新鎖定目前的依賴版本,但不會升級任何已安裝的套件。

如果想要更新所有依賴到最新可用版本,則可以使用:

poetry update

這將根據 pyproject.toml 重新解析依賴,並更新 poetry.lock,確保所有依賴是最新版本。


使用 Poetry 打包和發布

當你準備好發布你的 Python 項目時,Poetry 可以幫助你打包和發布到 PyPI:

  1. 構建項目:
poetry build
  1. 發布項目到 PyPI:
poetry publish

這會將你的項目打包並上傳到 PyPI 平台,供其他開發者下載和使用。

結語

Poetry 是一個強大的工具,簡化了 Python 項目的依賴管理、虛擬環境處理和打包發布過程。

通過 Poetry,你可以更輕鬆地管理專案並確保環境的一致性。

對於新手和有經驗的開發者來說,Poetry 都是一個值得使用的工具。

Similar Posts