メモの日々


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のプロジェクトを作ったことになる。 このファイルの作り方については割愛。次のドキュメントに説明がある。

プロジェクトの依存関係のインストール

pyproject.tomlがあるディレクトリで

$ poetry install

を実行すると、pyproject.tomlに定義された依存パッケージがPoetryの作る仮想環境へインストールされる。仮想環境のパスについてはドキュメントを参照。このとき、poetry.lockがまだ無いなら作られる。既にあるならそのlockファイルにあるバージョンのパッケージがインストールされる。

pyproject.tomlやpoetry.lockが更新された時にはこのコマンドを再実行する必要がある。

仮想環境内の実行ファイルの実行方法

プロジェクトの仮想環境のbinディレクトリにプロジェクトで使用する実行ファイル(自分の作るアプリケーションなど)が配置される。ここにある実行ファイルを実行するにはpoetry runコマンドを使う。

例えば

$ poetry run pip list

とするとインストールされた依存パッケージと開発するアプリケーションが一覧表示される。

  • run (python-poetry.org)

依存パッケージのバージョンアップ

$ poetry update パッケージ名

を実行すると、pyproject.tomlにある制約の範囲内で対象パッケージのバージョンが更新され、poetry.lockも更新される。 パッケージ名を指定しなければ全パッケージが更新される。

パッケージング

$ poetry build

を実行するとwheelパッケージを作れる。

  • build (python-poetry.org)

バージョン取得

pyproject.toml内にはアプリケーションのバージョンが記載されているが、次のコマンドでこのバージョンを取得することができる。

$ poetry version -s
0.0.1