LoongLee's blog

Poetry

Poetry

定义

Poetry 是 Python 的一个依赖管理和打包工具,旨在简化 Python 项目的依赖管理和发布流程。

核心功能

  • 依赖管理:精确控制依赖版本
  • 虚拟环境:自动创建和管理虚拟环境
  • 锁定文件:pyproject.toml 和 poetry.lock 确保环境可重现
  • 打包发布:简化 Python 包的构建和发布

主要命令

# 创建新项目
poetry new my-project

# 初始化现有项目
poetry init

# 添加依赖
poetry add django
poetry add pytest --dev

# 安装依赖
poetry install

# 运行命令
poetry run python manage.py runserver

# 激活虚拟环境
poetry shell

# 更新依赖
poetry update

# 构建包
poetry build

# 发布到 PyPI
poetry publish

pyproject.toml

项目配置文件,包含:

  • 项目元数据
  • 依赖项定义
  • 开发依赖项
  • 脚本入口

优势

  • 统一的依赖管理方案
  • 替代 pip + requirements.txt + setup.py 的组合
  • 确定性安装(通过 lock 文件)
  • 语义化版本约束

对比

特性 Poetry pip + venv Conda
依赖锁定
虚拟环境
打包发布
解析速度 中等

相关技术

  • Python - 基础语言
  • pip - 传统包管理器
  • Conda - 数据科学生态的包管理器

录入自: Django开发实践笔记