【Python入門】requirements.txt を作って依存関係をまとめてみた
はじめに
Python では、仮想環境(venv)を作ってその中に必要なパッケージをインストールすることで、環境を分離して開発できます。
ただし、新しく仮想環境を作成すると最初は空っぽなので、以前の環境で使っていたパッケージは含まれません。
そのため、大量のパッケージを使っているプロジェクトでは、毎回インストールし直すのは大変です。
そこで登場するのが requirements.txt
です。
仮想環境内で使用したパッケージをこのファイルにまとめておくことで、別の環境でも一括で同じパッケージをインストールでき、再現性を確保できます。
この記事では、requirements.txt
を使ったパッケージ管理の方法を、初心者にもわかりやすく手順で解説していきます。
きっかけ
ローカルマシン上で動作する CLI メッセージアプリを作成し、README に実行手順をまとめようとした際に気付いたことがきっかけです。
特に、アプリをサーバにアップロードして動かす場合を考えたとき、仮想環境をサーバ上で新たに作った後、どのように依存パッケージを再現するかが問題となりました。以下のアプリでは Faker しか使用していないのですが、複数のパッケージを使用している場合、複雑性が増します。
つまり、ローカル環境で確認した手順と同じ方法で、サーバ上でも仮想環境を作り、requirements.txt
からパッケージをインストールすることで同じ環境を再現できる ことに気づいた、というわけです。
アプリケーションの詳細についてはこちらをご参照ください
requirements.txt
を用意する手順
以下は、サーバにアップする前にローカル環境で行なうことです。
python3 -m venv venv
)
1. 仮想環境を構築する(プロジェクトのルートディレクトリでコマンドを実行します。
source venv/bin/activate
)
2. 仮想環境を有効化(3. 必要なパッケージをインストールする
例えば、上記の CLI メッセージアプリでは、外部パッケージとして Faker を使用しています。
4. 仮想環境内でプログラムの動作確認を行なう
requirements.txt
に保存(pip freeze > requirements.txt
)
5. 使用したパッケージを 仮想環境内で使用したパッケージ情報を requirements.txt
ファイルに保存します。
requirements.txt
ファイルは必ず venv ディレクトリの外で作成してください。
>
(アペンド)コマンドは「新規作成 or 上書き」なので、既存の内容は消えてしまうので、既存の内容を消したくない場合は注意しましょう。
requirements.txt
に保存されていれば設定完了
6. Faker==37.6.0
tzdata==2025.2
これで、依存関係を設定したファイルの準備は完了です。
あとは、実際に使用する環境で再現するために、以下の手順を実行します。
実行環境で行なうこと
1. プロジェクトをクローン
git clone <repository-url>
cd project
2. 仮想環境を構築
python3 -m venv venv
3. 仮想環境を有効化
source venv/bin/activate # Mac/Linux
または
venv\Scripts\activate # Windows
4. 依存関係をインストール
pip install -r requirements.txt
これで、使用しているマシン上で同じ環境を再現できます。
5. 実行
まとめ
本記事では、Python の仮想環境と requirements.txt
を使ったパッケージ管理の手順について解説しました。
わかったポイント
- 仮想環境(venv)を使うことで、プロジェクトごとに依存関係を分離できる
- 新しい仮想環境を作成すると最初は空なので、必要なパッケージは再インストールが必要
-
pip freeze > requirements.txt
で使用パッケージを記録し、pip install -r requirements.txt
で同じ環境を再現可能 - この方法を使うことで、ローカル環境だけでなくサーバ上でも同じ環境を簡単に作ることができる
Python でプロジェクトを管理する際には気をつけていきたいです。
最後までお読みいただき、ありがとうございました。
Discussion