This page looks best with JavaScript enabled

Poetry

Poetry: 開發 package & 專案 package 管理工具

pip3 install poetry

poetry --help


poetry init

interactive 的做專案初始化設定,設定之後會產生 pyproject.toml

pyproject.toml 裡面指有專案依賴的套件,依賴套件的依賴套件在 poetry.lock

不想被問的話:
poetry init -n


poetry add

poetry add XXX XXX2
安裝套件

如果要指定版本或是高於版本
poetry add XXX==VVV 或是 XXX^VVV

dependency types:

  • -D (--dev)
  • -E (--extras)
  • --optional

其他功能
poetry add -D --dry-run --verbose

poetry remove

poetry remove XXX
移除套件


poetry lock

從 pyproject.toml 產生 poetry.lock

poetry export

如果要輸出 requirements.txt: (格式、檔名、不存 hash、包含 dev)

poetry export --without-hashes > requirements.txt

poetry install

從 poetry.lock & pyproject.toml 安裝套件,且會檢查兩者是否 match

如果想要從 requirements.txt 安裝, 那就用 xargs 吧(因為 poetry 產的 requirements.txt 長不太一樣,有其他資訊,順便對註解做一些處理)

cat requirements.txt | grep -E '^[^; #]' | sed -E 's/(^[^; #]*).*/\1/' | xargs -n1 echo poetry add


poetry shell

進入環境 shell

macOS 的環境放在 ~/Library/Caches/pypoetry/virtualenvs 裡面

poetry run

透過環境執行

poetry run pip -V