2022年12月13日(火) [長年日記]
■ [python] Poetryの使い方メモ
PythonのパッケージングツールであるPoetryの使い方をメモ。使用するバージョンは1.3.1。
Poetryのインストール
ドキュメントにいくつかの方法が書かれているが、Manually (advenced) にあるvenvとpipを使った方法が分かりやすいと思う。
$ python3 -m venv $VENV_PATH $ $VENV_PATH/bin/pip install -U pip setuptools $ $VENV_PATH/bin/pip install poetry
VENV_PATHは任意のディレクトリを表す。上のようにした後、poetryコマンドの実体が $VENV_PATH/bin/poetry になるようにする(シンボリックリンクやシェルのaliasなどを使って)。
面倒ならvenvを使わずpipで普通にインストールしてもいいと思うけど。
プロジェクトの作成
pyproject.toml を用意すればPoetryのプロジェクトを作ったことになる。 このファイルの作り方については割愛。次のドキュメントに説明がある。
- Basic usage (python-poetry.org)
プロジェクトの依存関係のインストール
pyproject.tomlがあるディレクトリで
$ poetry install
を実行すると、pyproject.tomlに定義された依存パッケージがPoetryの作る仮想環境へインストールされる。仮想環境のパスについてはドキュメントを参照。このとき、poetry.lockがまだ無いなら作られる。既にあるならそのlockファイルにあるバージョンのパッケージがインストールされる。
pyproject.tomlやpoetry.lockが更新された時にはこのコマンドを再実行する必要がある。
- install (python-poetry.org)
仮想環境内の実行ファイルの実行方法
プロジェクトの仮想環境のbinディレクトリにプロジェクトで使用する実行ファイル(自分の作るアプリケーションなど)が配置される。ここにある実行ファイルを実行するにはpoetry runコマンドを使う。
例えば
$ poetry run pip list
とするとインストールされた依存パッケージと開発するアプリケーションが一覧表示される。
- run (python-poetry.org)
依存パッケージのバージョンアップ
$ poetry update パッケージ名
を実行すると、pyproject.tomlにある制約の範囲内で対象パッケージのバージョンが更新され、poetry.lockも更新される。 パッケージ名を指定しなければ全パッケージが更新される。
- update (python-poetry.org)
パッケージング
$ poetry build
を実行するとwheelパッケージを作れる。
- build (python-poetry.org)
バージョン取得
pyproject.toml内にはアプリケーションのバージョンが記載されているが、次のコマンドでこのバージョンを取得することができる。
$ poetry version -s 0.0.1
- version (python-poetry.org)