Python, pipでrequirements.txtを使ってパッケージ一括インストール

pipでPythonのパッケージ(ライブラリ)を管理している場合、設定ファイルrequirements.txtを使って指定のパッケージを指定のバージョンで一括インストールすることができます。

User Guide — pip 9.0.1 documentation

ここでは、

pipの一括インストールオプション: -r requirements.txt 設定ファイルrequirements.txtの書き方 現在の環境の設定ファイルを書き出し: pip freeze

について説明します。 pipの基本的な使い方については

pipの一括インストールオプション: -r requirements.txt

以下のコマンドで設定ファイルrequirements.txtに従ってパッケージが一括でインストールされます。

$ pip install -r requirements.txt

設定ファイル名は任意だがrequirements.txtという名前が使われることが多い。 requirements.txtはコマンドを実行するディレクトリに置いておく。別ディレクトリにある場合はパスを指定します。

設定ファイルrequirements.txtの書き方

設定ファイルrequirements.txtの例は以下の通り。

pip install - Example Requirements File — pip 9.0.1 documentation

###### Requirements without Version Specifiers ######`
nose
nose-cov
beautifulsoup4

###### Requirements with Version Specifiers ######`
docopt == 0.6.1             # Version Matching. Must be version 0.6.1
keyring >= 4.1.1            # Minimum version 4.1.1
coverage != 3.5             # Version Exclusion. Anything except version 3.5
Mopidy-Dirble ~= 1.1        # Compatible release. Same as >= 1.1, == 1.*

Pythonのコードと同じく#以降はコメントとなります。 ==や>, >=, <, <=などでバージョンを指定できます。バージョン指定を省略すると最新版がインストールされます。 カンマ,で区切ると二つの条件をANDで指定できます。 次の例では1.0以上かつ2.0以下のバージョンがインストールされます。 package >= 1.0, <=2.0

現在の環境の設定ファイルを書き出し: pip freeze

pip freezeコマンドで現在の環境にインストールされたパッケージとバージョンがpip install -rで使える設定ファイルの形式で出力されます。

$ pip freeze
agate==1.6.0
agate-dbf==0.2.0
agate-excel==0.2.1
agate-sql==0.5.2

したがって、pip freezeをリダイレクト>でファイルに出力すれば、そのファイルを使って元の環境と同じバージョンのパッケージを別環境に一括でインストールできます。 以下のような流れになります。 まずrequirements.txtをファイルに出力します。

$ pip freeze > requirements.txt

このrequirements.txtを別の環境にコピーして一括インストールします。

$ pip install -r requirements.txt
Last Updated: 6/26/2019, 10:34:03 PM