本記事では、Pythonにおいて、requirements.txtを使用して依存関係を管理する方法をご紹介します。特に、requirements.txtとは何であるかやその目的、また、実際の開発でpip install
でインストールしたりpip freeze
でrequirements.txtを生成したりする方法について解説していきます。
- requirements.txtとは何であるか知りたい
- requirements.txtから依存関係をインストールしたり、生成したりしたい
結論: Pythonにおけるrequirements.txtとは?インストールと生成方法
requirements.txtとは?
requirements.txtとは、Pythonプロジェクトにおいて外部ライブラリやパッケージのバージョン情報を含むテキストファイルです。このファイルを使うことで、現在のプロジェクトの依存関係を定義し、他のプロジェクトや他の開発者と同じ環境を使用できるようになります。
requirements.txtからパッケージをインストールする方法
requirements.txtが含まれている環境で、以下のコマンドを実行することで、現在の開発環境においてrequirements.txtで指定されたパッケージ・ライブラリをインストールできます。
pip install -r requirements.txt
requirementxt.txtを生成して現在の環境を保存する方法
既存のPython環境にインストールされているパッケージの一覧を取得し、requirements.txtを生成するには下記のコマンドを実行します。
pip freeze > requirements.txt
requirements.txtとは?
requirements.txtは、Pythonプロジェクトにおける依存関係の管理を行うためのファイルで、プロジェクトで必要とされる外部ライブラリやパッケージとそのバージョンをリスト化します。このファイルを利用することで、プロジェクトがどのパッケージに依存しているかを明確にし、他の開発者や環境で正確に同じ設定を再現することが可能になります。また、このファイルは通常、仮想環境化と同時に使用され、プロジェクトのルートディレクトリに配置されます。
requirements.txtを使用するメリット
requirements.txtを使用して依存関係を明確化することには下記のようなメリットがあります。
- 再現性の向上:
requirements.txt
を用いることで、どの環境でも同じバージョンのパッケージを簡単にインストールできるため、プロジェクトの挙動が一貫して再現可能になります。 - コラボレーションの助長: 新しい開発者がプロジェクトに参加する際、
requirements.txt
から必要なパッケージを一括でインストールすることで、すぐに開発を始めることができます。 - 環境管理の簡素化: 仮想環境と組み合わせることで、プロジェクトごとに異なる依存関係を持たせることができ、プロジェクト間の依存関係の衝突を避けることができます。
requirements.txtの表記
requirements.txt内で使用される表記は==
が多いですが、様々な方法でパッケージのバージョンを指定することができます。ここではpandasを例にそれらを紹介します。
pandas==2.2.2
(等号): これはv2.2.2のpandasを使用することを示していますpandas>=2.0.0
(不等号): これはv.2.0.0以上のpandasを使用することを示しています。基本的には最新のバージョンを使用することが想定されています。同様に等号なしや<
などを使用することができますpandas>=1.1.0, <=1.3.0
(範囲指定): カンマ区切りで条件を指定することで範囲指定をすることも可能ですpandas~=2.1.0
(互換性の保証): これは>=2.1.0, ==2.1.*
と同じ意味をもち、指定したバージョン以上かつ互換性があることをrequirements.txtのチルダによる表記で保証しています。詳しくは互換性のあるリリースをご確認ください
以上がrequiremts.txtとは何であるか、など概要の説明となります。
requirements.txtからパッケージをインストールする方法 (pip install)
次に、requirements.txtに指定されたパッケージやライブラリをpip
でインストールする方法をご紹介します。プロジェクトのルートディレクトリ (requirements.txtが存在する階層) で下記のコマンドを実行します。
pip install -r requirements.txt
このコマンドは通常のpip install
に-r
でrequirementオプションを記載したものです。つまり、requirements.txtに応じてパッケージやライブラリをインストールするように指定しています。
-r, –requirement <file>: 指定された要件ファイルからインストールします。このオプションは複数回使用できます。
pip install – pip ドキュメント
requirementxt.txtを生成して現在の環境を保存する方法 (pip freeze)
次に、現在のPython実行環境の依存関係をrequirements.txtに出力・生成する方法をご紹介します。プロジェクトのルートディレクトリにて下記のコマンドを実行してください。
pip freeze > requirements.txt
このコマンドでは、pip freeze
を使用して現在の依存関係を表示した後に、出力結果をrequirements.txtに書き込んでいます。ここで使用している>
とは、「リダイレクト」処理を実行するためのものであり、通常ターミナルに出力している結果を指定したファイルとして生成することを意味します。
pip freeze – pip ドキュメント
pip freeze
はインストールされているパッケージを要件形式で出力します。パッケージは、大文字と小文字を区別しないソート順でリストされます。
おわりに
以上が、Pythonのrequirements.txtとは何であるかという概要や、そのインストール・生成方法に関する説明となります。
ご質問やご不明点がある場合はお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント