这是一份 Poetry 常用命令速查表,专为从 Anaconda/Pipenv 迁移的用户整理,方便复制使用。 后来看到 uv ,感觉更加适合,所以选择了 uv ,可以直接替代 pyenv + pipenv 而且效率极高


Poetry 常用命令速查表

1. 项目初始化与环境

# 新建项目(自动生成目录结构)
poetry new my-project
 
# 在现有目录初始化
cd existing-project
poetry init
 
# 指定 Python 版本(依赖 pyenv 或系统已安装版本)
poetry env use 3.10
poetry env use python3.11
 
# 查看当前虚拟环境信息
poetry env info
 
# 查看所有环境列表
poetry env list
 
# 删除当前虚拟环境(清理重置用)
poetry env remove python

2. 依赖管理

# 安装生产环境依赖
poetry add requests
 
# 安装开发依赖(如测试、格式化工具)
poetry add pytest --group dev
# 或者简写
poetry add black -G dev
 
# 安装项目所有依赖(通常用于 git clone 后)
poetry install
 
# 仅安装生产环境依赖(部署时常用)
poetry install --only main
 
# 更新所有依赖到最新版(受 pyproject.toml 约束)
poetry update
 
# 更新指定包
poetry update requests
 
# 移除依赖
poetry remove requests
poetry remove pytest --group dev
 
# 查看依赖树(排查冲突神器)
poetry show --tree
 
# 查看过时的包
poetry show --outdated

3. 运行与交互

# 激活虚拟环境
poetry shell
 
# 在虚拟环境中运行命令(不进入 shell)
poetry run python main.py
poetry run pytest
 
# 检查 poetry.lock 是否与 pyproject.toml 同步
poetry check

4. 构建与发布 (打包分发)

# 构建
poetry build
 
# 发布到 PyPI
poetry publish
 
# 构建并发布(一步到位)
poetry publish --build

5. 常见问题修复

# 锁文件不同步时(强制更新 lock 文件)
poetry lock --no-update
 
# 彻底清理并重装环境
poetry env remove python  # 删除环境
poetry install            # 重新安装

配置文件结构参考 (pyproject.toml)

[tool.poetry]
name = "my-project"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
# 指定 Python 版本范围
python = "^3.10"
 
[tool.poetry.dependencies]
python = "^3.10"
requests = "^2.31.0"
pandas = "^2.0"
 
[tool.poetry.group.dev.dependencies]
pytest = "^7.0"
black = "^23.0"
 
# 构建系统配置(自动生成,一般不动)
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"