はじめに
Python開発において、依存パッケージの管理は非常に重要な作業です。特に複数人で開発を進める場合、環境の違いによるトラブルが頻発することもあります。そこで今回は、依存関係の管理とビルド、パッケージ公開まで一貫してサポートするパッケージ管理ツール 「poetry」 を紹介します。
実際のコマンド例を交えながら、poetryがどのように複数人開発を助けるかを具体的に解説していきます。
poetryは、複数人開発の際にpackage管理できる非常にオススメなツールとなります。しかし、もしこれらについて理解が難しい場合は、経験豊富な方とマンツーマンで学習していくのもオススメです。
poetryとは?
poetryは、Pythonプロジェクトの依存パッケージ管理とビルドプロセスをシンプルかつ一貫性のあるものにするツールです。従来、Pythonではpipとvirtualenvを組み合わせて環境を作ったり、requirements.txtを手作業で管理したりしていましたが、poetryを使えばこれらを一元管理できます。
簡単に言うと、poetryで作った環境を渡し、「poetry install」「poetry run」することで他の人が作ったpackage(version含む)環境下で実行できます。
他の人が作ったpackageが足りない! package verのせいで出力結果が変わる! みたいなことがなくなります。
poetryの特徴
- 依存パッケージのインストールと管理
- 仮想環境(virtualenv)の自動作成
- バージョン固定管理(poetry.lock)
- パッケージのビルド・配布機能
- プロジェクトテンプレートの作成支援
これらの機能が揃っているため、Python開発のベストプラクティスを簡単に実現できます。
poetryの使い方
それでは、実際にpoetryの使い方を見ていきます。公式ページは下記になるので、参考ください。
ステップ①:pythonのインストール
poetryを活用するにはpython3.9以上が2025年4月時点で必要だそうです。pythonをインストールしていない方は公式からダウンロードしましょう。

ステップ②:poetryのインストール
下記のコマンドでpoetryをインストールします。
pipx install poetry
ステップ③:poetryプロジェクトの作成
下記のコマンドを打つと”poetry-demo”フォルダが生成され、その中に必要なファイル類がインストールされます。
poetry new poetry-demo
poetry-demo内には下記のファイルが生成されます。
poetry-demo
├── pyproject.toml
├── README.md
├── src
│ └── poetry_demo
│ └── __init__.py
└── tests
└── __init__.py
以上で、poetry環境の作成は終わりになります。
pyproject.tomlは最も重要なファイルになります。このファイルによってプロジェクトとその依存関係がオーケストレーションされます。
poetryの環境構成コマンド
下記がpoetry環境構成コマンドとなります。
新しいpackageを入れたい場合、管理したい場合は下記のコマンドを打っていきます。
packageの追加
poetry内の環境にパッケージを新しく入れる場合は、下記のように書きます。
pandasの場合は「poetry add pandas」とします
poetry add パッケージ名
packageの削除
poetry内の環境からパッケージを削除する場合は、下記のように書きます。
pandasの場合は「poetry remove pandas」とします。
poetry remove パッケージ名
packageの表示
実際に入れられたpackageを表示するには、下記のコマンドを書きます。
poetry show
poetry環境のインストール
他の方が作ったpoetry環境をインストールするには下記コマンドを入れます。
その場合は、pyproject.tomlがあることが必要です。ここに書かれた依存関係を加味したpackageをインストールします。そのため、他の方が作ったこのファイルや環境をインストールすることができます。
poetry install
poetry環境でプログラムをrunする
下記の中にmain.pyというファイルを作ったうえで、poetry環境をrunしてみます。
実行ファイルmain.pyの作成
下記のディレクトリの中にmain.pyを作成します。
poetry-demo
├── pyproject.toml
├── README.md
├── src
│ └── poetry_demo
│ └── __init__.py
│ └── main.py
└── tests
└── __init__.py
main.pyには下記の内容を入れます。
# main.py
import lightgbm as lgb
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# データ作成
X, y = make_classification(n_samples=100, n_features=10, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# LightGBM用データに変換
train_data = lgb.Dataset(X_train, label=y_train)
# モデル学習
model = lgb.train({'objective': 'binary'}, train_data, num_boost_round=50)
# 予測と評価
y_pred = model.predict(X_test)
y_pred_label = (y_pred > 0.5).astype(int)
print("Accuracy:", accuracy_score(y_test, y_pred_label))
poetry環境での実行
下記のコマンドを打っていきます。poetry run python~~ で実行をすることができます。
lightgbm, sklearnが必要なので、poetry addで入れた後に実施していきます。
poetry add lightgbm
poetry add scikit-learn
poetry run python src/poetry_demo/main.py
実行が行われ、精度が表示されました!

まとめ
poetryはpackageの管理に非常に便利です。pyproject.toml、poetry.lockファイルとともにプログラムを渡し、poetry installコマンドを打つことで他人の環境を簡単に作ることができます。
実際に自分も開発で使っていますが、非常に便利なツールでした。dependencyの解消も自動でやってくれるので、packageが増えてきたときもオススメです。
poetryを学ぶのにオススメの方法
スクール:現役データサイエンティストに教えてもらう
poetryや仮想環境はデータ分析や開発でよく用いられますが、重要な基礎知識のため、しっかりと理解することが重要です。ただ、しっかりと理解しながら進めるには適切なメンターなどがいた方が安心です。スクールなどに入り、アドバイスしてもらいながら進めるのも良いでしょう。



コメント