はじめに
新規に作成する Python アプリケーション、あるいはすでに稼働している Python アプリケーションの依存パッケージを確認して、別の環境にコピーしたい事があります。今回、必要なパッケージを洗い出して requirements.txt (ファイル名は任意に変更可能) に書き出し、コピー先の環境で一括インストールする手順を紹介します。前提として、pip コマンドが使えることを確認しておいてください。
大まかな流れ
- 依存しているパッケージとバージョンを洗い出す
- パッケージとバージョンのリストをファイルに書き出す
- 新しい環境で一括インストールする
手順
依存しているパッケージとバージョンを洗い出す
すでに稼働している Python アプリケーションの場合は下記のコマンドを実行するだけでリストを取得できます。
(venv)$ pip list boto3 (1.4.0) botocore (1.4.47) docutils (0.12) jmespath (0.9.0) pip (8.1.2) python-dateutil (2.5.3) s3transfer (0.1.2) setuptools (18.2) six (1.10.0)
パッケージとバージョンのリストをファイルに書き出す
リストされたパッケージのうち、pip と setuptools は除外してしまって構いません。venv 環境を作成するとデフォルトでインストール済みになっていました。また、手動でインストールしたパッケージ以外に、それらの依存パッケージとして追加でインストールされたパッケージもリストされます。
パッケージ名とバージョンを「<=」でつなげるとバージョンを固定できます。常に最新のバージョンにしたい場合は「>=」でつなぎます。目的に応じて指定してください。
requirements.txt
boto3>=1.4.0 botocore>=1.4.47 docutils>=0.12 jmespath>=0.9.0 python-dateutil>=2.5.3 s3transfer>=0.1.2 six>=1.10.0
新しい環境で一括インストールする
作成した requirements.txt をコピー先の環境に置き、pip コマンドでこれを指定してインストールします。
(venv)$ pip install -r requirements.txt