Poetry 教程
1. Poetry 简介
Poetry 是一款用于 Python 依赖性管理和打包的工具。它允许你声明项目依赖的库,并为你管理(安装/更新)它们。Poetry 提供一个锁文件,以确保可重复安装,并可构建项目以供发布。
Poetry 需要 Python 3.8 以上版本。它是多平台的,目标是让它在 Linux、MacOS 和 Windows 上同样运行良好。
推荐使用 pipx
安装:
bash
pipx install poetry
如果你没有安装 pipx
,可以使用 pip
安装 pipx
:
bash
pip install pipx
对于 Linux 或 MacOS 系统,可以使用官方命令安装:
bash
curl -sSL https://install.python-poetry.org | python -
对于 Windows 则可以使用 PowerShell 安装:
powershell
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
这种方法需要手动添加路径:
- MacOS:
~/Library/Application Support/pypoetry
- Linux/Unix:
~/.local/share/pypoetry
- Windows:
%APPDATA%\pypoetry
2. Poetry 基本使用
查看命令的使用方式:
bash
poetry list
创建项目:
bash
poetry new poetry-demo
这将生成如下目录:
console
poetry-demo
├── pyproject.toml
├── README.md
├── poetry_demo
│ └── __init__.py
└── tests
└── __init__.py
初始化项目:
bash
cd pre-existing-project
poetry init
这总是可以配合虚拟环境使用。
Poetry 还可以配合 pre-commit
使用,可以在项目中添加 .pre-commit-config.yaml
文件,然后运行 pre-commit install
安装钩子。
yml
repos:
- repo: https://github.com/python-poetry/poetry
rev: '' # add version here
hooks:
- id: poetry-check
args: ["-C", "./subdirectory"]
- id: poetry-lock
args: ["-C", "./subdirectory"]
- id: poetry-export
args: ["-C", "./subdirectory", "-f", "requirements.txt", "-o", "./subdirectory/requirements.txt"]
- id: poetry-install
args: ["-C", "./subdirectory"]
3. 常用命令
安装一个项目的依赖:
bash
poetry install --no-root
安装一个包:
bash
poetry add package-name
安装一个开发包:
bash
poetry add --group=dev package-name
卸载一个包:
bash
poetry remove package-name
更新一个包:
bash
poetry update package-name
4. 使用第三方源
添加第三方源,例如添加 OnnxRuntime CUDA 源:
bash
poetry source add --priority=supplemental onnxruntime https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
使用源安装包:
bash
poetry add --source onnxruntime onnxruntime-gpu
如果添加一个 primary
优先级的源,可以用于代替 PyPI 源:
bash
poetry source add --priority=primary my-pypi https://pypi.org/simple/