コンテンツにスキップ

[Poetry] Snippets

プロジェクトの作成

poetry new <project_name>

pyproject.tomlを作成するだけならpoetry init.

packageのインストール/アンインストール

新しいpackageを指定してインストール

poetry add <package_name>

packageを指定してアンインストール

poetry remove <package_name>

依存関係を全てインストール(devも含む)

poetry install [<packages>...]
  • poetry.lockがある場合は記載されたバージョンをインストール
  • poetry.lockがない場合はpyproject.tomlから依存性グラフを作成した結果のバージョンをインストール + poetry.lockの作成

依存関係のアップデート

poetry update [<packages>...]

pyproject.tomlの条件を満たすバージョン最新が、poetry.lockに記録されていなければファイルをアップデート + インストール

環境

仮想環境の構築

poetry env use <python_path>

仮想環境の確認

poetry env info

仮想環境をプロジェクト配下に作成するようにする

poetry config virtualenvs.in-project "true"

Version 1.0より前の場合

Version1.0より前はコマンドが違うので注意。

poetry config settings.virtualenvs.in-project true

packageの依存関係

一覧で表示

poetry show

ツリー表示

poetry show --tree

devは除いて表示

poetry show --no-dev

最新版と比較して表示

poetry show --latest

古いpackageのみ表示

poetry show --outdated

packageのビルド

tarballとwheelを作成

poetry build

wheelだけ作成

poetry build -f wheel

実行

仮想環境で実行

poetry run <commands>...

packageリリース

requirements.txtを作成する

poetry export -f requirements.txt -o requirements.txt

パブリッシュ

poetry publish

ID/PASSWORDを聞かれなくする

2通りの方法がある。

configに設定する

# api tokenを設定 (推奨)
poetry config pypi-token.pypi <api-token>

# username/passwordを設定 (非推奨)
poetry config http-basic.pypi <username> <password>

設定は以下に作成される。

  • Windows: %APPDATA%\pypoetry\auth.toml
  • Linux: ~/.config/pypoetry/auth.toml

環境変数を使う

CIではコチラがオススメかも。

export POETRY_PYPI_TOKEN_PYPI=my-token
export POETRY_HTTP_BASIC_PYPI_USERNAME=username
export POETRY_HTTP_BASIC_PYPI_PASSWORD=password