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