Poetry 備忘錄
· 3 分鐘閱讀
這篇備忘錄記錄了 Poetry。
資訊
Poetry 是一個用於 Python 項目依賴管理和打包的工具。它旨在提供一個更簡潔、更直觀的開發體驗,解決了傳統 Python 項目中 pip 和 virtualenv 的一些痛點。
Poetry 將依賴管理、虛擬環境、打包和發布功能集成到一個工具中,使得 Python 項目的生命週期管理更加順暢。
1. 安裝 Poetry
推薦使用官方提供的腳本進行安裝:
Linux / macOS / WSL
curl -sSL https://install.python-poetry.org | python3 -
Windows (PowerShell)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
安裝完成後,你可能需要將 Poetry 的可執行路徑添加到你的 PATH 環境變量中。安裝腳本通常會給出提示。
2. 創建新專案
要創建一個新的 Poetry 專案:
poetry new my-project
cd my-project
這會創建一個包含以下結構的新目錄:
my-project/
├── my_project/
│ └── __init__.py
└── pyproject.toml
└── README.md
3. pyproject.toml 文件
Poetry 使用 pyproject.toml 文件來管理項目元數據和依賴。這是 Poetry 的核心配置文件。
範例 pyproject.toml:
[tool.poetry]
name = "my-project"
version = "0.1.0"
description = ""
authors = ["Your Name <[email protected]>"]
readme = "README.md"
packages = [{include = "my_project"}] # 指定你的 Python 包
[tool.poetry.dependencies]
python = "^3.10" # 指定 Python 版本
requests = "^2.28.1" # 運行時依賴
[tool.poetry.group.dev.dependencies]
pytest = "^7.1.2" # 開發時依賴 (例如測試工具)
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
4. 管理依賴
添加依賴
poetry add requests # 添加運行時依賴
poetry add --group dev pytest # 添加開發時依賴
這會更新 pyproject.toml 並安裝依賴到虛擬環境中。
移除依賴
poetry remove requests
poetry remove --group dev pytest
安裝依賴
如果 pyproject.toml 和 poetry.lock 已經存在,安裝所有依賴:
poetry install
更新依賴
更新所有依賴到最新兼容版本:
poetry update
更新指定依賴:
poetry update requests
5. 虛擬環境
Poetry 會自動為每個專案創建和管理虛擬環境。
運行命令
在虛擬環境中運行命令:
poetry run python my_script.py
進入虛擬環境 Shell
poetry shell
然後你就可以直接運行 python 或其他已安裝的命令。
查看虛擬環境信息
poetry env info
刪除虛擬環境
poetry env remove python3.10 # 替換為實際的 Python 版本或環境路徑
6. 打包和發布
打包專案
創建一個源發行版(sdist)和一個輪子文件(wheel):
poetry build
打包文件會生成在 dist/ 目錄中。
發布到 PyPI
在發布之前,請確保你的 pyproject.toml 中的元數據是準確的。
poetry publish
如果你是第一次發布,可能需要配置 PyPI 憑據。
poetry config pypi-token.pypi <your-pypi-token>
7. 總結
Poetry 是一個現代化的 Python 項目管理工具,它簡化了依賴管理、虛擬環境、打包和發布的整個流程。它的 pyproject.toml 文件提供了一個清晰且中心化的方式來定義項目元數據和依賴,大大提升了開發效率和項目可維護性。
読み込み中...