新手指南:Python Poetry 套件管理工具簡介
更新日期: 2025 年 2 月 14 日
本文為 Python 安裝教學,第 4 篇:
在 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 -
這條指令的作用是:
- 透過
curl
下載 Poetry 安裝腳本(從官方網站https://install.python-poetry.org
)。-sSL
確保下載過程中保持安靜(但仍顯示錯誤)並支援 HTTP 跳轉。- 下載的內容透過
|
(管道符號)直接傳遞給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.toml
和 poetry.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:
- 構建項目:
poetry build
- 發布項目到 PyPI:
poetry publish
這會將你的項目打包並上傳到 PyPI 平台,供其他開發者下載和使用。
結語
Poetry 是一個強大的工具,簡化了 Python 項目的依賴管理、虛擬環境處理和打包發布過程。
通過 Poetry,你可以更輕鬆地管理專案並確保環境的一致性。
對於新手和有經驗的開發者來說,Poetry 都是一個值得使用的工具。