Poetryを使ってパッケージを管理する

はじめに

これまではrequirements.txtを使って依存パッケージを管理していたのですが、新しくパッケージを追加するたびに手動で編集する必要がある、開発時のみ使いたいパッケージもまとめて記入しておかないと不便、など少し不満を感じていました。そこで、パッケージのインストールと管理を一度に、半自動で行えるpoetryを試してみました。

以下の記事を参考にしています(リンク先の記事を辿れば本記事の内容はカバーできます)。

公式ドキュメントはこちらです。

インストール

mac, linuxの場合は以下のコマンドで追加できます。

curl -sSL https://install.python-poetry.org | python3 -

インストール時にもメッセージが表示されますが、パスを通すために.bashrc.zshrcへ環境変数を追加するのを忘れずに。

poetry --versions

poetryのバージョンが表示されればインストール成功です。

使い方

1. Pythonをセットアップ

Pythonのインストール方法はいくつかありますが、いずれかの方法で導入すれば良いと思います。

  • pyenvを使う(異なるバージョンのPythonを使いたい場合)
  • brewを使う(特定のバージョンのPythonが使えれば十分な場合)

2. プロジェクトをセットアップ

新規プロジェクトを作成する場合

poetry new <project-name>

上記コマンドを実行すると、現在のディレクトリ以下に<project-name>という名前のフォルダが作成されます。<project-name> 以下にはREADME.rst, __init__.pyが入ったディレクトリ<project-name>、テスト用のディレクトリtestsが作成されます。また、依存環境等を管理するための、pyproject.tomlも作成されます。

既存のプロジェクトをPoetryで管理する場合

管理したいプロジェクトのルートディレクトリで、

poetry init

を実行すると、対話形式で、プロジェクト名や依存関係について入力を求められます。デフォルト値で良い場合はEnter連打でokです。入力が終了すると、pyproject.tomlが作成されます。

3. 仮想環境のセットアップ

poetry install

を実行すると、依存関係があるパッケージ等がインストールされます。開発用の依存関係が不要な場合は、--no-devオプションをつけて実行すればokです。依存パッケージに更新がある場合、poetry updateを実行することで更新できます。

仮想環境で用いるPythonバージョンを指定したい場合は、

poetry config virtualenvs.inproject true
poetry env use <python-version>

を実行することで指定できます。

4. 依存パッケージの追加

poetry add <package-name>

を実行することで、依存パッケージを追加できます。--devオプションをつけて上記コマンドを実行することで開発用の依存パッケージを追加できます。

Failed to unlock the collection!というエラーメッセージが表示された場合、以下のコマンドを実行すると解決できます。

keyring --disable

GitHubリポジトリからインストールする場合はpipと同様、

poetry add git+<url>

とすれば良いです。

CUDA対応のPyTorchなど、urlを指定してインストールしたい場合、以下のようにpyproject.tomlに直接記入するのが良いそうです。

[tool.poetry.dependencies]
torch = {url = "https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl"}

5. 仮想環境で実行

poetry run python <python-file>

あるいは、

poetry shell

で仮想環境用のshellを立ち上げ、そこで実行するなどの方法があります。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。

CAPTCHA