基礎・中級問題チェック
問題 40 /40
パッケージのリスト「requirements.txt」を作る際に使うコマンドはどれか。
解説
選択肢2が正解です。
「pip list」はパッケージの一覧をコンソールに表示しますが、人が見やすい形式で出力するだけであり、そのままrequirements.txtとしては使えません。
「pip list」の表示例
-------------------------------
psycopg2-binary 2.9.1
SQLAlchemy 1.4.20
-------------------------------
「pip freeze」は、インストールされているパッケージをrequirements.txt形式(パッケージ名==バージョン)で出力するコマンドです。
「pip freeze」の表示例
-------------------------------
psycopg2-binary==2.9.1
SQLAlchemy==1.4.20
-------------------------------
requirements.txtに保存する場合は、「pip freeze > requirements.txt」を実行します。
仮想環境をアクティベートした状態で実行すると、その仮想環境のパッケージ一覧がカレントディレクトリにrequirements.txtとして保存されます。
次の構成は、仮想環境myenvをアクティベートし、カレントディレクトリがmy_projectになっている状態で、「pip freeze > requirements.txt」を実行した例です。
my_project/ ← カレントディレクトリ
│
├─ myenv/ ← 仮想環境のフォルダ
└─ requirements.txt
このrequirements.txtを使うと、指定されているバージョンで一括インストールできます。
例えば、開発環境でrequirements.txtを出力し、本番環境で上記の場所に保存して、「pip install -r requirements.txt」を実行して一括インストールします。
(公式書籍 p.140-141)