Python Poetry使用教程

1. Poetry 简介

Poetry 是一个现代化的 Python 依赖管理打包工具,它解决了传统 pip + requirements.txt 方式的诸多痛点:

  • 自动依赖解析(避免版本冲突)
  • 虚拟环境管理(无需手动 virtualenv
  • 项目打包与发布(一键发布到 PyPI)
  • 统一配置文件pyproject.toml 替代 setup.py + requirements.txt

本教程将带你从 安装配置高级用法,全面掌握 Poetry 的使用。


2. 安装与配置

(1) 安装 Poetry

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

# Windows (PowerShell)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -

安装完成后,检查版本:

poetry --version

(2) 基本配置

# 让虚拟环境创建在项目目录内(推荐)
poetry config virtualenvs.in-project true

# 启用并行安装(加速依赖安装)
poetry config installer.parallel true

# 查看所有配置
poetry config --list

关键配置项

  • virtualenvs.path:虚拟环境存储路径(默认在系统缓存目录)
  • installer.parallel:是否启用并行安装
  • virtualenvs.in-project:是否在项目目录创建 .venv

3. 项目管理

(1) 创建新项目

# 创建标准项目结构
poetry new my-project

# 进入项目
cd my-project

生成的项目结构:

my-project/
├── pyproject.toml  # 项目配置文件
├── README.md
├── my_project/     # 源码目录
│   └── __init__.py
└── tests/          # 测试目录
    └── __init__.py

(2) 在现有目录初始化

poetry init

交互式输入:

  • 项目名称、版本、描述
  • Python 兼容版本
  • 依赖项(可稍后添加)

4. 依赖管理

(1) 添加依赖

# 添加生产依赖
poetry add requests

# 添加开发依赖(如 pytest)
poetry add --group dev pytest

# 指定版本范围
poetry add "django>=4.0,<5.0"

# 添加可选依赖(如 redis)
poetry add --optional redis

(2) 安装依赖

# 安装所有依赖(含开发依赖)
poetry install

# 仅安装生产依赖
poetry install --no-dev

(3) 更新与移除依赖

# 更新所有依赖
poetry update

# 更新指定包
poetry update requests

# 移除依赖
poetry remove requests

(4) 查看依赖

# 查看已安装的包
poetry show

# 树形结构显示依赖关系
poetry show --tree

# 检查过时的包
poetry show --outdated

5. 虚拟环境管理

(1) 创建与使用

# 使用指定 Python 版本创建虚拟环境
poetry env use python3.9

# 进入虚拟环境 Shell
poetry shell

# 在虚拟环境中运行命令(不进入 Shell)
poetry run python app.py

(2) 管理虚拟环境

# 列出所有虚拟环境
poetry env list

# 显示当前环境信息
poetry env info

# 删除虚拟环境
poetry env remove python3.9

6. 构建与发布

(1) 构建项目

# 生成 dist/ 下的安装包
poetry build

# 只构建 wheel 包
poetry build --format wheel

(2) 发布到 PyPI

# 配置 PyPI Token
poetry config pypi-token.pypi your-token

# 发布到 PyPI
poetry publish

# 发布到测试 PyPI
poetry publish --repository testpypi

(3) 版本管理

# 查看当前版本
poetry version

# 升级版本号
poetry version patch  # 0.1.0 → 0.1.1
poetry version minor  # 0.1.1 → 0.2.0
poetry version major  # 0.2.1 → 1.0.0

7. 高级功能

(1) 多包源管理

# 添加私有源
poetry source add private-repo https://private.pypi.org/simple

# 查看已配置的源
poetry source show

# 移除源
poetry source remove private-repo

(2) 导出 requirements.txt

# 导出生产依赖
poetry export --without-hashes --output requirements.txt

# 导出开发依赖
poetry export --dev --output requirements-dev.txt

(3) 插件管理

# 安装插件(如 poetry-plugin)
poetry self add poetry-plugin

# 查看已安装插件
poetry self show plugins

# 更新 Poetry 自身
poetry self update

8. 常见问题

(1) 依赖解析失败

# 强制更新 lock 文件
poetry lock --no-update

# 调试依赖冲突
poetry debug resolve

(2) 清理缓存

# 查看缓存列表
poetry cache list

# 清理所有缓存
poetry cache clear --all

(3) 虚拟环境问题

# 删除并重建虚拟环境
poetry env remove python3.9
poetry install

9. 最佳实践(补充)


10. 总结

Poetry 是 Python 项目管理的终极工具,它能:
自动处理依赖冲突
统一管理虚拟环境
简化打包与发布流程
替代 setup.py + requirements.txt

建议所有 Python 开发者迁移到 Poetry,享受更高效的开发体验! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DZSpace

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值