# Poetry常用命令
# 项目管理
poetry new poetry-demo # 创建项目
poetry init # 初始化已有项目 - 在已有项目根目录下执行
poetry config --list # 查看poetry配置
poetry config virtualenvs.in-project true # 修改poetry配置
# 虚拟环境
poetry env use python建立虛擬環境所使用的 Python 版本,取決於python指令在你的「PATH」是連結到哪個版本。
- 你也可以將指令最後的
python,改為python3或python3.8,甚至只需要3.8,只要它們確實存在於 PATH 中。- 更多資訊可參考官方文件 (opens new window)。
預設上,Poetry 會統一將虛擬環境建立在「特定目錄」裡,比如本例中存放的路徑是
/Users/kyo/Library/Caches/pypoetry/virtualenvs。虛擬環境的命名模式為**
專案名稱-亂數-Python版本** 。
poetry run python main.py # 在poetry虚拟环境执行python命令
poetry shell # 显式激活poetry虚拟环境
source {path_to_venv}/bin/activate # 手动激活虚拟环境
poetry install # 安装依赖(根据lock文件或生成lock文件-poetry.lock)
poetry update [<package>] # 尝试更新依赖版本-尽可能高版
poetry lock # 根据toml文件更新lock文件
# 设置使用哪个虚拟环境的python
poetry env use /full/path/to/python
poetry env use python3.7
# 显示环境
poetry env info
poetry env list
# 获取环境路径
poetry env info --path
# 获取python可执行路径
poetry env info --executable
# 删除环境
poetry env remove /full/path/to/python
poetry env remove python3.7
poetry env remove 3.7
poetry env remove test-O3eWbxRl-py3.7
# 依赖管理
所有依赖需要跨组无冲突-而不是组内无冲突-核心理念是lock文件仅仅是poetry版本的requirements.txt
poetry show --outdated # 查看可以更新的依赖
poetry show # 查看项目安装的依赖
poetry show [<package>] --tree # 已树形结构查看项目安装的依赖
poetry export -f requirements.txt -o requirements.txt --without-hashes # 输出requirements
# 将black新增到dev分支
poetry add black --group dev
poetry add black@23.3.0 --group dev # 指定版本可覆盖老版本
poetry add pytest --group test
# 安装所有组的依赖
poetry install
# 安装 main 组的依赖 (三种写法)
poetry install --with main
poetry install --only main
poetry install --only-root
# 选择安装哪些组 (--without优先级高于with)
poetry install --with test,docs --without docs
# 将分组内的依赖都删除
poetry remove mkdocs --group docs
# 同步poetry的依赖到虚拟环境-会去除lock文件中没有的依赖
poetry install --sync
# 选择性同步poetry的某一个组
poetry install --without dev --sync
poetry install --with docs --sync
poetry install --only dev
# 配置镜像源
poetry source add ali https://mirrors.aliyun.com/pypi/simple/ --default
poetry source add tencent https://mirrors.cloud.tencent.com/pypi/simple/
poetry source add tsinghua https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
# Poetry安装
Poetry 和 pip、git、pyenv 等工具一樣,都是典型的命令列工具,需要先安裝才能下達指令——poetry。
# 安裝方式選擇
Poetry 主要提供了兩種安裝方式 (opens new window):
- 全域安裝至使用者的家目錄。
- pip 安裝至專案使用的 Python(虛擬)環境,即
pip install poetry。
個人推薦使用全域安裝,官方文件也表示不推薦使用 pip 安裝 (opens new window)。
因為 pip 安裝是直接安裝到「專案所屬的 Python 虛擬環境」裡,而 Poetry 所依賴的套件非常多,總計超過 30 個,會嚴重影響專案虛擬環境的整潔度。文件中也警告這些依賴套件可能和專案本身的套件發生衝突:
Be aware that it will also install Poetry’s dependencies which might cause conflicts with other packages.
# 全域安裝 Poetry 至家目錄
# macOS / Linux / WSL(Windows Subsystem for Linux)
curl -sSL https://install.python-poetry.org | python3 -
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
# Windows
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
Poetry 实际安装如下:
$HOME/.local/bin for Unixexport PATH="$HOME/.local/bin:$PATH"
%APPDATA%\Python\Scripts on Windows
# 設定 PATH 環境變數
# 在 macOS 或 Linux 上設定 PATH
使用 macOS 或 Linux,設定 PATH 的步驟相對簡單,只要在.zshrc或.bashrc或.bash_profile新增:
export PATH=$PATH:$HOME/.local/bin
# 在 Windows 上設定 PATH
$Env:Path += ";C:\Users\jetbrains\AppData\Roaming\Python\Scripts"; setx PATH "$Env:Path"
← JupyterLab安装 Poetry概述 →