1. ホーム
  2. コース一覧
  3. Python環境構築コース
  4. requirements.txtの使い方

Python環境構築コース6/7

requirements.txtの使い方

こちらでは、 requirements.txtについて解説していきます。

requirements.txtとは

requirements.txtとは、pip installコマンドでインストールするパッケージ一覧を記述したファイルのことです。

requirements.txt にはPythonの開発環境で使われている、パッケージの名前とバージョンの一覧が記載されています。

requirements.txtを使うケース

複数人で開発する環境を共有する場合や、実際に本番環境に反映させる場合には、Pythonで作成したアプリケーションのパッケージのバージョンを統一する必要があります。

理由は、バージョン違いでアプリケーションが動かなくなってしまうこともあるからです。

そのような場合にrequirements.txtが利用されます。

共有しないと環境が変わった時にいちいちバージョンを確認して一つずつインストールしたり、正常に動作しなかったりと様々な問題が発生しかねません。

パッケージの依存関係によるエラー

パッケージによっては、他のパッケージのあるバージョンには対応しておらず、アップデートしたときに正常に動作しない場合もあるため、正常に動作したときのバージョンで必ず作成しておきましょう。

(ファイル名は特に決まってないですが、基本的にはrequirementsという名前が使用されます)

pipコマンドについて

requirements.txtを作成したり、requirements.txtを使用してパッケージ一覧をインストールする場合には、pipコマンドを使用します。 https://envader.plus/course/8/scenario/1072

requirements.txtの作成

requirements.txtの作成方法について、基本的な作成方法とpip freezeコマンドを使用して、ローカル環境にあるパッケージ一覧をまとめてrequirements.txtへ記述する方法に分けてご紹介します。

requirements.txtの基本的な書き方と作成方法

requirements.txtファイルを作成し、インストールしたいパッケージを一行ずつ記述していきます。バージョンを指定したい場合は、バージョンも一緒に記述します。

# requirements.txt 
# バージョン指定なし
distlib
filelock
greenlet
# バージョン指定あり
importlib-metadata==4.8.1
msgpack==1.0.3
mypy==0.942

pip freezeコマンドでrequirements.txtを作成する

pip freezeコマンドを使用すると、ローカル環境で使用しているパッケージ一覧を表示することができます。

pip freeze > の後にrequirements.txtとすることでファイルを作成できます。

pip freeze > requirements.txt
# requirements.txt の中身
alembic==1.7.5
app==0.0.1
bcrypt==3.2.0
captcha==0.3
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.9
virtualenv<20.10.0, >19.0.0

・・・・・・

バージョンを指定しない場合はインストールするときに最新版がインストールされます。

==, >= , >, <=, <, != などでバージョンを指定し、カンマで区切ることでAND 条件を指定し二つのバージョンをインストールできます。

pip freezeコマンドはローカル環境で使用しているパッケージの一覧を表示します。 もしすでにプロジェクトが存在していて、使用しているパッケージのみを対象にrequirements.txtを作成したい場合は、venvやvirtualenvなどの仮想環境を起動してからコマンドを実行する必要があります。

venv関連記事

venvやvirtualenvについて知りたい方は、別シナリオにて解説しています。 https://envader.plus/course/8/scenario/1075

virtualenv関連記事

https://envader.plus/course/8/scenario/1074

requirements.txtでパッケージを一括でインストールする

他の環境に移した時やcloneしたとき、パッケージのバージョンを以前の状態に戻したいときなどに、requirements.txtに記載されたパッケージを一括でインストールします。

pip install の後に -r オプションと requirements.txtとすることでパッケージと指定したバージョンを一括でインストールできます。

pip install -r requirements.txt

まとめ

今回はrequirements.txtファイルについて解説しました。

pip freezeコマンドでのファイルの作成

pip freeze > requirements.txt

requirements.txt内のパッケージの一括インストール

pip install -r requirements.txt

requirements.txtはとても大事なファイルなので、しっかりと使い方や役割を覚えておきましょう。

問題を解くためには、十分な画面サイズのPC環境をご利用下さい。