Poetry
# 介绍
Poetry 是一款由社区维护的开源 Python 包管理工具。官网 (opens new window)
# 安装
# 直接使用 pip 安装
不推荐,只是因为可行列出来。
# 使用 pipx
pipx install poetry # 安装
pipx upgrade poetry # 更新
pipx uninstall poetry # 卸载
# 指定特定版本
pipx install poetry==1.2.0
# 平行安装多个版本并用后缀区分
pipx install --suffix=@1.2.0 poetry==1.2.0
poetry@1.2.0 --version
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 使用官方脚本
Linux, macOS, Windows (WSL)
curl -sSL https://install.python-poetry.org | python3 -
1
Windows (PowerShell)
(Invoke-WebRequest -Uri https://install.python-poetry.org/ -UseBasicParsing).Content | python -
1
这个脚本直接使用便会自动下载并安装 poetry,其实实际上还是走的 pip,所以如果安装慢修改 pip 的镜像源便可加快安装速度。
为了提供个性化设置,脚本会识别一些环境变量或参数,详见官方文档 (opens new window)。这里列出一些常用的:
参数直接加在脚本后面,如 curl -sSL https://install.python-poetry.org | python3 - --version 1.6.0
。
POETRY_HOME
环境变量,可指定安装目录POETRY_VERSION
环境变量,或使用参数--version
可指定安装版本POETRY_UNINSTALL
环境变量,或使用参数--uninstall
可卸载 Poetry
# 更新
如果是使用的包管理软件则直接使用包管理软件的更新命令即可
使用官方脚本安装则使用
poetry self upgrade
1
更新前一定要注意启动的实例都已经关闭,否则会出现旧版本文件没删完的情况,导致 poetry 项目结构损坏,只能卸载重装。
# 使用
详细内容参考官方文档 (opens new window)
# 常用指令
# 基本指令
poetry new <project-name> # 创建新项目
poetry init # 初始化已存在的项目
poetry install # 从poetry.lock安装依赖,添加--sync可移除已安装的多余依赖
poetry add <package> # 添加依赖
poetry remove <package> # 移除依赖
poetry update # 更新依赖
poetry lock # 生成poetry.lock文件,在手动修改了pyproject.toml后使用
poetry run <command> # 运行命令 如poetry run python main.py
poetry shell # 进入虚拟环境
poetry show # 显示当前项目的依赖,添加--tree可显示依赖树
poetry export -f requirements.txt --output requirements.txt # 导出依赖到requirements.txt
poetry env use <python excutable> # 使用指定的python解释器,可以用来指定python版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 配置相关
poetry config --list # 列出所有配置项
poetry config <key> <value> # 设置配置项
poetry config --unset <key> # 删除配置项
1
2
3
2
3
# 缓存目录 (cache-dir)
缓存目录,用于缓存下载的包,默认为:
- macOS: ~/Library/Caches/pypoetry
- Windows: C:\Users<username>\AppData\Local\pypoetry\Cache
- Unix: ~/.cache/pypoetry
可使用配置项cache-dir
修改或环境变量POETRY_CACHE_DIR
指定。
# 将虚拟环境设置到项目文件下 (virtualenvs.in-project)
poetry 创建虚拟环境时的位置,false 为 {cache-dir}/virtualenvs
,true 为 {project-root}/.venv
,默认为 false。
编辑 (opens new window)
上次更新: 5/14/2024, 11:44:10 PM