当前位置: 首页 > news >正文

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,享受更高效的开发体验! 🚀

相关文章:

  • 【美团】Java后端一面复盘|网络+线程+MySQL+Redis+设计模式+手撕算法
  • Unity:延迟执行函数:Invoke()
  • 使用 Cookie 实现认证跳转功能
  • 生产级编排AI工作流套件:Flyte全面使用指南 — Core concepts Launch plans
  • MinerU本地化部署可视化界面
  • 【前端】[vue3] [uni-app]使用 vantUI 框架
  • 在24GB显存大小的GPU上运行27GB的Pytorch模型
  • 05-SpringBoot
  • python报错:在int中找不到引用value错误问题原因及解决方案
  • SpringBoot通过虚拟路径指定文件上传下载目录
  • 【深度剖析】安踏体育的数字化转型(上篇2)
  • 网站推荐(第四期)
  • 淘宝商家层级存在流量上限怎么办,如何突破流量上限?
  • 从数据包到可靠性:UDP/TCP协议的工作原理分析
  • 从零开始学习three.js(19):一文详解three.js中的辅助类Helper
  • PCL PolygonMesh 与 TextureMesh 源码阅读与简单测试
  • 从前序与中序遍历序列构造二叉树(中等)
  • ubuntu 更新华为源
  • 网络世界的“百变身份“:动态IP让连接更自由
  • DevExpressWinForms-RichEditControl-基础应用
  • 3月中国减持189亿美元美债、持仓规模降至第三,英国升至第二
  • 病愈出院、跳大神消灾也办酒,新华每日电讯:农村滥办酒席何时休
  • 广西:坚决拥护党中央对蓝天立进行审查调查的决定
  • 商务部新闻发言人就出口管制管控名单答记者问
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 被前男友泼汽油致残后,一个女孩经历的双重灼烧