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環境をご利用下さい。