本記事では、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を使いこなしていきましょう!