メインコンテンツまでスキップ

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

· 約4分
Shinya Kato
DayoneLabs管理人、ソフトウェア開発者、OSS開発者

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つのパッケージ名を記述します。バージョンの指定は任意です。

requirements.txt
# バージョン指定なし(最新バージョンがインストールされる)
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)を提供している場合、角括弧で指定できます。

requirements.txt
# PostgreSQL用のドライバを含むSQLAlchemy
sqlalchemy[postgresql]>=2.0.0

# セキュリティ関連の追加依存を含むrequests
requests[security]>=2.31.0

実用的なrequirements.txtの例

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コマンドで一括インストールが可能です。


参考リンク:

免責事項:
当記事は管理人の開発時に書き留められたメモをもとにAIを活用して編纂されたものです。 管理人は記事の公開前に内容の校正・校閲を行い、記事の信頼性と正確性の向上に務めますが、それらを保証するものではありません。 また、当記事の編集時の誤字やコード例の不具合等によって読者が何らかの損害等を被った場合でも、管理人は一切の責任を負いません。 当記事に掲載したコンテンツの利用については自己責任でお願い致します。