Pythonのrequirements.txtで依存ライブラリを一括インストールする

どうも、Shinyaです。この記事では、Pythonのrequirements.txtを使用して依存ライブラリを一括でインストールする方法について解説します。
- Pythonプロジェクトの依存ライブラリを効率的に管理したい人
- requirements.txtの書き方を知りたい人
- pip3で複数のライブラリをまとめてインストールしたい人
- チームで開発環境を統一したい人
依存ライブラリの管理における課題
Pythonプロジェクトで外部ライブラリを使用する場合、通常はpip3 installコマンドで個別にインストールします。
pip3 install requests
pip3 install flask
pip3 install sqlalchemy
pip3 install celery
pip3 install redis
依存ライブラリの数が少ないうちはこの方法で問題ありませんが、プロジェクトが成長するにつれてライブラリの数が増加し、手動で1つずつインストールする方法は非効率になります。また、チームメンバー間で使用するライブラリのバージョンが異なると、環境の不一致による問題が発生する可能性があります。
requirements.txtとは
requirements.txtは、Pythonプロジェクトで使用する依存ライブラリとそのバージョンを記述するテキストファイルです。このファイルを使用することで、pip3コマンド1つですべての依存ライブラリを一括でインストールできます。
requirements.txtはPythonのパッケージ管理におけるデファクトスタンダードであり、ファイル名も慣例としてrequirements.txtが広く使用されています。配置場所はプロジェクトのルートディレクトリが一般的です。
プロジェクト構成の例
my_project/
├── requirements.txt
├── src/
│ ├── main.py
│ └── utils.py
├── tests/
│ └── test_main.py
└── README.md
requirements.txtの書き方
基本的な構文
requirements.txtでは、1行に1つのパッケージ名を記述します。バージョンの指定は任意です。
# バージョン指定なし(最新バージョンがインストールされる)
requests
# 特定のバージョンを指定
flask==3.1.1
# 最小バージョンを指定
sqlalchemy>=2.0.0
# コメント行(#で始まる行は無視される)
# キャッシュ関連
redis
バージョン指定の演算子
| 演算子 | 意味 | 例 |
|---|---|---|
== | 特定のバージョンに固定 | flask==3.1.1 |
>= | 指定バージョン以上 | sqlalchemy>=2.0.0 |
<= | 指定バージョン以下 | numpy<=1.26.0 |
~= | 互換バージョン(マイナーバージョンの範囲内) | requests~=2.31.0(>=2.31.0, <2.32.0と同等) |
>=x,<y | バージョン範囲の指定 | django>=4.2,<5.0 |
!= | 特定のバージョンを除外 | celery!=5.3.0 |
エクストラ依存の指定
パッケージがオプションの追加機能(extras)を提供している場合、角括弧で指定できます。
# PostgreSQL用のドライバを含むSQLAlchemy
sqlalchemy[postgresql]>=2.0.0
# セキュリティ関連の追加依存を含むrequests
requests[security]>=2.31.0
実用的なrequirements.txtの例
# Web framework
flask==3.1.1
# HTTP client
requests~=2.31.0
# Database
sqlalchemy[postgresql]>=2.0.0,<3.0.0
# Task queue
celery>=5.3.0
redis>=5.0.0
# Utilities
python-dotenv>=1.0.0
pydantic>=2.0.0
依存ライブラリの一括インストール
インストールコマンド
requirements.txtに記述されたライブラリを一括でインストールするには、以下のコマンドを実行します。
pip3 install -r ./requirements.txt
-rオプションは、指定したファイルからパッケージの一覧を読み取ることを示します。コマンドを実行すると、requirements.txtに記述されたすべてのライブラリが順番にインストールされます。
インストール結果の確認
インストールが完了したら、以下のコマンドでインストール済みのパッケージを確認できます。
pip3 list
まとめ
この記事では、requirements.txtを使用してPythonの依存ライブラリを一括でインストールする方法について解説しました。
requirements.txtはPythonプロジェクトの依存関係を管理するデファクトスタンダードであり、バージョン演算子による柔軟なバージョン指定や、エクストラ依存の指定に対応しています。pip3 install -r ./requirements.txtコマンドで一括インストールが可能です。
参考リンク:
