【poetryの使い方】pythonプロジェクトを管理する

本記事では、poetryの使い方を解説します。

poetryとは

poetryはpythonの依存関係管理とパッケージングのためのツールです。

poetryのインストール

asdfのインストール

poetryのインストールですが、別の記事で解説したasdfを使うと簡単にインストールすることができます。asdfをインストールしていない場合は、こちらの記事を参考にasdfをインストールしてください。

関連記事

ぴよこ 複数のpythonのバージョンを使い分けたいんだけど、どうすればいいかな? まさる博士 それなら、asdfが便利だよ! みなさん、pythonのインストールはどのようにしていますか? 1[…]

poetryプラグインのインストール

下記のコマンドでpoetryのプラグインをインストールします。

asdf plugin-add poetry

これで、poetryをインストールする準備は完了です。

poetryのインストール

プロジェクトフォルダを作成して、poetryを実際にインストールしていきます。

testフォルダを作成して、そこに.tool-versionsファイルを作成します。インストールするツールとバージョンを記載します。

python 3.11.4
poetry 1.5.1

pythonも後で使用したいので一緒にインストールします。

.tool-versionsファイルを用意できたら、下記のコマンドでインストールします。

asdf install

poetryがインストールされているか確認しましょう!

poetry --version

Poetry (version 1.5.1)と表示されれば、インストールは完了です。

poetryの使い方

poetryはパッケージングのための多くのことをできますが、ここではその機能の一部を紹介します。

プロジェクトを初期化する

作成したtestフォルダで下記のコマンドを実行して、プロジェクトフォルダを初期化します。

poetry init

コマンドを実行すると対話モードで質問がありますが、特に指定がなければ、何も入力せずそのままエンターしていけば大丈夫です。

完了すると、pyproject.tomlというプロジェクトファイルが作成されます。

仮想環境の設定をおこなう

下記のコマンドで仮想環境のフォルダをプロジェクト内に作成する設定をします。

poetry config virtualenvs.in-project true --local

実行すると、poetry.tomlというファイルが作成されます。

プロジェクトを読み込む

下記のコマンドで現在のプロジェクトにある、pyproject.tomlファイルを読み込み、依存関係を解決しインストールします。

poetry install

実行すると、.venvフォルダが作成され仮想環境が作成されます。

ライブラリのインストール

poetryでは、下記のようにライブラリをインストールします。バージョンを指定する場合は@バージョン、とします。

poetry add biopython@1.83

実行してインストールすると、pyproject.tomlやpoetry.lockにもインストールしたライブラリの情報が記載されていきます。他の人に共有するときにこれらのファイルを共有することで、同じ環境を作成することができます。

また、下記のようにグループを指定してインストールすることができ、開発用のライブラリなどを分けて管理することができます。

poetry add --group dev black

ライブラリの表示

下記のコマンドでインストールされたライブラリの一覧を表示します。

poetry show --tree

–treeオプションを加えると、依存関係などを木構造で表示してくれます。

ライブラリの削除

インストールしたライブラリを削除するには下記のコマンドを実行します。

poetry remove biopython

仮想環境の使用

poetryではプロジェクトで作成した仮想環境でpythonを実行する方法として2つの方法があり、どちらの方法で実行しても問題ありません。

1つ目は、仮想環境に入ってから実行する方法です。下記のコマンドで仮想環境を起動してシェルに入ることができるので、そこでプログラムを実行したりします。

poetry shell

仮想環境から出るためには、下記のコマンドを入力します。

exit

2つ目は、仮想環境の中でコマンドを実行する方法です。下記のように、poetry run (コマンド)と入力することで、仮想環境で実行することができます。

poetry run python --version

おわりに

本記事では、poetryの使い方を解説しました。ここでは全ての機能を解説できてはいないので、公式のページなども参考にしてpoetryを使いこなしていきましょう!