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