PoetryはPythonのパッケージ管理と依存関係管理を簡単にするためのツールです。特にPythonプロジェクトでの仮想環境の作成、パッケージのインストール、依存関係の管理、プロジェクトのパッケージングと公開を効率的に行うことができます。ここでは初心者向けに、Poetryの基本的な使い方をインストールから仮想化、venvとの使い分けやPyPIでの公開方法まで丁寧に解説します。
- Poetryをインストールして使ってみたい
- Poetryの基本的な使い方を知りたい
結論: Poetryの使い方
Poetryのインストールを含む、基本的な使い方は下記のとおりです。それぞれ各セクションで詳しく解説していきます。
- Poetryのインストール
pip install poetry
- プロジェクトの作成
poetry new my-project
- 依存関係 (パッケージ・ライブラリ) の追加
poetry add pandas
- 仮想環境の使用
poetry shell
なお、Poetryとは、Python で依存関係を管理およびパッケージ化するためのツールです。これを使用すると、プロジェクトが依存するライブラリを宣言でき、ライブラリが管理 (インストール/更新) されます。 Poetry自体のより詳しい解説についてはPoetry公式ドキュメントをご確認ください。
Poetryのインストール方法
Poetryはpip
コマンドを使用して簡単にインストールすることができます。コマンドシェルを使用して、下記のスクリプトを実行してください。
pip install poetry
より詳細な説明はPoetryの公式ドキュメントを確認してください。その後、下記のコマンドでPoetryを自動ロードされるように設定します。
poetry completions bash >> ~/.bash_completion
Poetryを使用して仮想環境を作成・使用する方法
次に、インストール済みのPoetryを使用して仮想環境を構築する方法をご紹介します。ここでは、下記の動作を解説しています。
Poetryを使用した新しいプロジェクトの作成
まず初めに、Poetryのnew
コマンドを使用して新しいプロジェクトを作成していきます。ここでは、my-project
としていますが、任意のプロジェクト名を使用してください。また、カレントディレクトリをルートとしてプロジェクトを作成したい場合は.
でOKです。
poetry new my-project
もしプロジェクトを削除したい場合は通常通りディレクトリを削除するので問題ありません。
依存関係 (パッケージ・ライブラリ) の追加
次に、依存関係 (パッケージ・ライブラリ) を追加する方法をご紹介します。こちらは通常のpip install {ライブラリ名}
に該当するコマンドとなります。新しいプロジェクトにcd
コマンドで移動後に、下記のPoetryコマンドを実行してください。
poetry add pandas
これにより、pandasライブラリとその依存関係が仮想環境内にインストールされています。
仮想環境の使用
これまでに作成・依存環境をインストールした仮想環境は、Poetryのプロジェクトごとに管理されています。この仮想環境を有効にしてプロジェクトを操作するには、次のコマンドを実行します。
poetry shell
これにより、pyproject.tomlに指定された仮想環境が有効化されていることが分かります。
プロジェクトのビルドと公開
ここまで作成したプロジェクトをビルドするためには下記のコマンドを実行します。これにより、Poetryはpyproject.toml
に定義されている設定に基づいてビルドプロセスを開始します。このファイルにはプロジェクトの名前、バージョン、依存関係などが含まれています。
poetry build
ビルドプロセス中に、Poetryは以下の二つの形式でパッケージを生成します。
- ホイール形式 (
.whl
): ホイール形式は、ビルドされた配布パッケージであり、インストールが高速です。Pythonの新しい標準的な配布形式として広く採用されています - ソースアーカイブ形式 (
.tar.gz
): ソースアーカイブは、プロジェクトのソースコードを含む圧縮ファイルです。ユーザーはこのアーカイブをダウンロードし、自身でビルドすることが可能です。
ビルドが成功すると、distディレクトリがプロジェクトのルートに作成され、その中に.whlファイルと.tar.gzファイルが保存されます。
その後、このプロジェクトをPyPIに登録するためのステップは下記のとおりです。
- PyPIへの登録:
- パッケージを公開する前に、PyPIにユーザーアカウントを作成し、APIトークンを取得する必要があります。これにより、PoetryがPyPIにパッケージをアップロードする際の認証が可能になります。
- 設定の更新:
- Poetryの設定を更新して、生成されたAPIトークンをPoetryに登録します。これは以下のコマンドで行います。
- パッケージのアップロード:
- ビルドしたパッケージをPyPIにアップロードするには、以下のコマンドを使用します。
poetry config pypi-token.pypi {取得したPyPIのAPIキー}
- このコマンドは、
dist
ディレクトリ内のファイルをPyPIにアップロードし、全世界のPythonユーザーがpip install {パッケージ名}
を使用してインストールできるようになります。poetry publish
- ビルドしたパッケージをPyPIにアップロードするには、以下のコマンドを使用します。
他にPoetryで使用機会が多いコマンドの使い方
poetry update
このコマンドはプロジェクトの依存関係を最新のバージョンに更新します。pyproject.toml
で指定されたバージョン制約に基づいて依存パッケージを更新し、poetry.lock
ファイルも同時に更新します。
poetry update
特定のパッケージだけを更新したい場合は、パッケージ名をコマンドに追加します。
poetry update pandas
poetry run
このコマンドはPoetryが管理する仮想環境内で任意のコマンドを実行します。これにより、仮想環境をアクティブにすることなく、環境内のPythonスクリプトやツールを直接実行できます。
poetry run python script.py
poetry lock
poetry lock
コマンドはpoetry.lock
ファイルを生成または更新しますが、パッケージのインストールは行いません。これは依存関係の解決を行い、現在の依存関係の状態をロックファイルに保存する際に便利です。こちらはpip freeze
に似た機能を提供します。
poetry lock
poetry install
このコマンドはpyproject.toml
とpoetry.lock
ファイルに基づいて依存関係をインストールします。プロジェクトを初めてセットアップするときや、他の開発者とプロジェクトを共有するときに特に重要です。このコマンドは既に依存関係が解決されていると仮定し、poetry.lock
に基づいて正確に同じバージョンをインストールします。
poetry install
poetry remove
プロジェクトからパッケージを削除する場合にこのコマンドを使用します。これにより、指定されたパッケージがpyproject.toml
とpoetry.lock
から削除されます。
poetry remove requests
poetry show
インストールされているパッケージのリストを表示したり、特定のパッケージの詳細情報を確認したりするときにこのコマンドが役立ちます。
poetry show
特定のパッケージに関する詳細情報を得るには下記の通り、後ろにライブラリ名を指定します。
poetry show pandas
これらのコマンドは、Poetryを用いたPythonプロジェクトの管理を効率的かつ効果的に行うために不可欠です。日々の開発作業において、これらのコマンドを適切に使用することで、プロジェクトの依存関係を維持し、問題が発生した際のトラブルシューティングを容易にすることができます。
おわりに
以上が、Poetryのインストールなどの基本的な使い方のご紹介となります。
ご質問やご不明点がある場合はお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント