poetry 語法格式

 poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [<arg1>] ... [<argN>]

全域性 options

  • --verbose (-v|vv|vvv):增加訊息的詳細程度:“-v”表示正常輸出,“-vv”表示更詳細的輸出,“-vvv”表示除錯
  • --help (-h):幫助文件
  • --quiet (-q):靜默模式,不輸出任何內容
  • --ansi:強制 ANSI 輸出
  • --no-ansi:禁用 ANSI 輸出
  • --version (-V):版本號

new

通過建立適合大多數專案的目錄結構來啟動新的Python專案

poetry new my-package 

my-package 是路徑

預設目錄結構

my-package
├── pyproject.toml
├── README.rst
├── my_package
│ └── __init__.py
└── tests
├── __init__.py
└── test_my_package.py

自定義專案名稱

poetry new my-folder --name my-package

使用 src 目錄

poetry new --src my-package

目錄結構

my-package
├── pyproject.toml
├── README.rst
├── src
│ └── my_package
│ └── __init__.py
└── tests
├── __init__.py
└── test_my_package.py

init

如果想在已存在的 Python 專案使用 poetry,可以用 init 命令,poetry 會以互動方式建立 pyproject.toml 檔案

poetry init 

我是一隻回車沒有自己輸入東西的

options

  • --name:包的名稱
  • --description:包的描述
  • --author:包的作者
  • --python:相容的 Python 版本
  • --dependency:需要具有版本約束的包,格式 foo:1.0.0
  • --dev-dependency:開發需求

生成 pyproject 已有的欄位 和 options 是可以對齊的

install

從當前專案讀取 pyproject.toml 檔案,解析依賴項 [tool.poetry.dependencies] 並安裝它們

poetry install
  • 如果當前目錄中有 poetry.lock 檔案,它將使用其中的確切版本,而不是解析它們,這確保使用庫的每個人都將獲得相同版本的依賴項
  • 如果沒有 poetry.lock 檔案,poetry 將在依賴項解析後建立一個

--no-dev

不希望安裝開發依賴項 [tool.poetry.dev-dependencies]

poetry install --no-dev

--remove-untracked

移除 poetry.lock 檔案中不再存在的舊依賴項

poetry install --remove-untracked

-E|--extras

指定安裝的包

--no-root

不要安裝根目錄包

update

獲取所有依賴項的最新版本並更新 poetry.lock 檔案

oetry update

指定依賴項進行更新

poetry update requests toml

options

  • --dry-run :輸出操作,但不執行操作
  • --no-dev : 不安裝開發依賴項
  • --lock:不執行安裝,僅更新 poetry.lock 檔案

add

  • 將所需要的包新增到 pyproject.toml 並安裝他們
  • 未指定版本的話,則 poetry 會自動選擇合適的版本
poetry add requests pendulum

指定版本

poetry add pendulum@^2.0.5
poetry add "pendulum>=2.0.5"

獲取最新的版本

poetry add pendulum@latest

新增 github 依賴項

poetry add git+https://github.com/sdispater/pendulum.git

新增 github 依賴項,指定分支

poetry add git+https://github.com/sdispater/pendulum.git#develop
poetry add git+https://github.com/sdispater/pendulum.git#2.0.5

通過本地目錄、檔案進行安裝

poetry add ./my-package/
poetry add ../my-package/dist/my-package-0.1.0.tar.gz
poetry add ../my-package/dist/my_package-0.1.0.whl

以可編輯模式安裝依賴項

在 pyproject.toml 檔案指定,意味著本地目錄中的更改會直接反映在環境中

[tool.poetry.dependencies]
my-package = {path = "../my/path", develop = true}

options

  • --dev (-D):將包新增為開發依賴項
  • --path:指定依賴項的路徑
  • --optional:作為可選依賴項新增
  • --dry-run:輸出操作,不執行任何操作
  • --lock:不執行安裝,僅更新 poetry.lock 檔案

remove

從已安裝包列表刪除指定包

poetry remove pendulum

options

  • --dev(-D):從開發依賴項中刪除包
  • --dry-run:輸出操作,不執行任何操作

show

根據 poetry.lock 列出所有可用的軟體包,並不是根據 pyproject.toml 檔案的 [tool.poetry.dependencies]

poetry show

檢視某個包的詳細資訊

poetry show fastapi  

options

  • --no-dev:不要列出開發依賴項

  • --tree:樹的形式列出依賴項

  • --latest (-l):顯示最新版本

  • --outdated (-o):顯示最新版本,但僅適用於過時的軟體包

run

在專案的 virtualenv 中執行指定的命令

poetry run python -V

還可以執行 pyproject.toml 中定義的指令碼

[tool.poetry.scripts]
my_script = "my_module:main"

執行

poetry run my_script

shell

顯式啟用當前虛擬環境,會自動呼叫虛擬環境下的啟用命令

如果不存在虛擬環境,會自動建立一個

check

驗證 pyproject.toml 檔案的結構,並在出現任何錯誤時返回詳細報告

poetry check

search

在遠端庫上搜索包

poetry search requests

lock

將所有依賴項鎖定為最新的可用相容版本

poetry lock

version

顯示專案的當前版本

是 pyproject.toml 檔案的 version 哦

export

將鎖檔案匯出為其他格式

poetry export -f requirements.txt --output requirements.txt

options

  • --format (-f):要匯出的格式(預設值:requirements.txt)目前,僅支援requirements.txt
  • --output (-o):輸出檔案的名稱,如果省略,則列印到標準輸出
  • --dev(-D):從開發依賴項中刪除包
  • --extras (-E):要包含的額外依賴項集
  • --without-hashes:從匯出的檔案中排除雜湊
  • --with-credentials:包括用於額外索引的憑據

env

管理虛擬環境,具體教程看:https://www.cnblogs.com/poloyy/p/15270670.html

cache

與 poetry 快取互動

cache list

列出 poetry 的可用快取

build

生成原始檔

publish

將使用 build 命令生成的包釋出到遠端儲存庫

options

  • --repository (-r):要將包註冊到的儲存庫(預設值:pypi)應與config命令設定的儲存庫名稱匹配
  • --username (-u):訪問儲存庫的使用者名稱
  • --password (-p):訪問儲存庫的密碼
  • --dry-run:執行除上傳包以外的所有操作

config

編輯 poetry 配置項,具體可看:https://www.cnblogs.com/poloyy/p/15269573.html