Poetry

2022-03-13

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

安装

macOS 直接通过 Homebrew 方式安装:

Terminal window
1
brew install poetry

Linux 使用以下命令安装:

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

等安装完成后加到 Path

Terminal window
1
export PATH="$HOME/.local/bin:$PATH"

启用补全

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

Terminal window
1
mkdir $ZSH_CUSTOM/plugins/poetry
2
poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry

最后在 Zsh 配置文件中增加插件

~/.zshrc

1
plugins(
2
...
3
poetry
4
)

使用

初始化

~/Developer
1
poetry new my-project
2
3
# 已有项目: ~/Developer/my-project
4
poetry init

设置虚拟环境

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

Terminal window
1
# 先使用 pyenv 安装虚拟环境
2
pyenv install 3.12
3
# 设定为全局
4
pyenv global 3.12
5
6
# 指定版本
7
poetry env use python

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

自定义源

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

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

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

Terminal window
1
# 添加源
2
poetry source add douban https://pypi.doubanio.com/simple/
3
# 验证是否添加成功
4
poetry source show

添加依赖

Terminal window
1
poetry add fastapi

安装插件

Terminal window
1
poetry self add <plugin_name>
2
3
# 卸载插件
4
poetry self remove <plugin_name>
5
# 查看已安装插件
6
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 安装

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

参考