Python, pipでrequirements.txtを使ってパッケージ一括インストール
Pythonのパッケージ(ライブラリ)をpipで管理している場合、設定ファイルrequirements.txtを使って指定のパッケージを指定のバージョンで一括インストールできる。
pipの基本的な使い方については以下の記事を参照。
pipの一括インストールオプション: -r requirements.txt
以下のコマンドで設定ファイルrequirements.txtに従ってパッケージが一括でインストールされる。
$ pip install -r requirements.txt
設定ファイル名は任意だがrequirements.txtという名前が使われることが多い。
requirements.txtはコマンドを実行するディレクトリに置いておく。別ディレクトリにある場合は、絶対パスか、カレントディレクトリからの相対パスを指定する。
設定ファイルrequirements.txtの書き方
設定ファイルrequirements.txtの例は以下の通り。
###### Requirements without Version Specifiers ######
nose
nose-cov
beautifulsoup4
#
###### Requirements with Version Specifiers ######
# See https://www.python.org/dev/peps/pep-0440/#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.*
source: pip_install.rst
Pythonのコードと同じく#以降はコメントとなる。
- 関連記事: Pythonのコメント、コメントアウトの書き方
==や>, >=, <, <=などでバージョンを指定できる。バージョン指定を省略すると最新版がインストールされる。
カンマ,で区切ると二つの条件をANDで指定できる。次の例では1.0以上かつ2.0以下のバージョンがインストールされる。
package >= 1.0, <=2.0
仕様の詳細については公式ドキュメントを参照。
- Requirements File Format - pip documentation v24.1
- Requirement Specifiers - pip documentation v24.1
- Version specifiers - Python Packaging User Guide
現在の環境の設定ファイルを書き出し: 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