Poetry 是一个用于管理 Python 项目依赖关系和构建工具的工具和库。

安装

macOS 直接通过 Homebrew 方式安装:

brew install poetry

Linux 使用以下命令安装:

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

等安装完成后加到 Path

export PATH="$HOME/.local/bin:$PATH"

启用补全

如果是用 Oh My Zsh 继续配置:

mkdir $ZSH_CUSTOM/plugins/poetry
poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry

最后在 Zsh 配置文件中增加插件 ~/.zshrc

plugins(
	...
	poetry
	)

使用

初始化

# 新项目: ~/Developer
poetry new my-project
 
# 已有项目: ~/Developer/my-project
poetry init

设置虚拟环境

虚拟环境一般配合 pyenv 使用:

# 先使用 pyenv 安装虚拟环境
pyenv install 3.12
# 设定为全局
pyenv global 3.12
 
# 指定版本
poetry env use python

指定的版本一定要在 $PATH 的路径中,如果是当前 PATH 的版本,无须指定版本号。

自定义源

在项目根目录pyproject.toml文件末尾添加:

[[tool.poetry.source]]
name = "douban"
url = "https://pypi.doubanio.com/simple/"

也可以直接通过命令添加:

# 添加源
poetry source add douban https://pypi.doubanio.com/simple/
# 验证是否添加成功
poetry source show

添加依赖

poetry add fastapi

安装插件

poetry self add <plugin_name>
 
# 卸载插件
poetry self remove <plugin_name>
# 查看已安装插件
poetry self show plugins

命令

  • 初始化
    • 新项目:new <my-project>
    • 原有项目:init
    • 新环境安装:install(从当前项目读取依赖并安装)
  • 项目
    • 安装依赖:add <package>
    • 删除依赖:remove <package>
    • 列出已安装:show
  • 显示当前版本:--version
  • 输出详细日志:-vvv

env

  • 切换环境: env use 3.10(指定版本或完整路径)
  • 查看信息: env info
  • 列出所有环境: env list
  • 删除指定环境: env remove <path> (—all 删除所有)

source

  • 添加源:source add <sourec_name> <source_url>
  • 列出源:source show
  • 删除源:source remove <source_name>

问题

如何从 requirements 安装

# 简单的 requirements 可以通过这个方式安装
cat requirements.txt | xargs poetry add
poetry add $( cat requirements.txt )

参考