2021.03.04   2021.05.25

【Python】requirements.txtでパッケージを一括インストールする

Python    

requirements.txt とは

一括インストールしたいPythonパッケージをまとめたリストのこと。

次のコマンドを実行することで、リストのパッケージを一括インストールできる。

pip install -r requirements.txt

主な用途は、ローカル環境で使用していたパッケージをリスト化して、本番環境に適用したり、Dockerコンテナ作成時にパッケージを自動インストールさせる際に使用する。

requirements.txt の書き方

基本的な書き方

基本的な書き方は簡単で、パッケージ名を一行ずつ記述するだけです。

記入例
requests
beautifulsoup4
selenium
pandas
numpy

あとはpip install -r requirements.txtコマンドを実行するれば、上記パッケージの最新バージョンがインストールされます。


バージョンを指定してインストールしたい場合

開発するアプリやシステムの都合で、パッケージのバージョンを指定してインストールしたい場合は、下記のようにパッケージ名 == インストールしたいバージョンというかたちで記述します。

記入例
requests == 4.0.0
beautifulsoup4 == 4.9.3
selenium == 3.141.0
pandas == 1.2.4
numpy == 1.20.2


その他のバージョン指定方法

あるバージョン以上のパッケージをインストールしたり、特定のバージョンを除いた上でインストールしたい場合などの書き方も用意されています。

以下はその書き方の例です。

記入例
keyring >= 4.1.1          # 4.1.1 以上のバージョンをインストールする
coverage != 3.5           # 3.5 以外のバージョンをインストールする
SomeProject >=1.2,<2.0    # 1.2以上かつ2.0未満のバージョンをインストールする
Mopidy-Dirble ~= 1.1      # バージョン1.1と互換性のあるバージョンをインストールする 

Mopidy-Dirble ~= 1.1については、Mopidy-Dirble >= 1.1と書いても、Mopidy-Dirble == 1.*と書いても同じ意味となります。


まとめ

・最新版をインストールしたい場合はパッケージ名をそのまま記述する。

・明示的にバージョン指定をしたい場合は「==」を使う。

・ >, <, <=, >=などを使用すると大まかなバージョン指定ができる。

開発環境のパッケージを本番環境にもインストールしたい場合

ローカル環境のパッケージを本番環境でも使用したい場合、

以下のコマンドをローカル環境で実行すると、現在使用しているパッケージ情報をrequirements.txt に記述できます。

pip freeze > requirements.txt

pip freeze で記述したファイルは、次のコマンドで対象環境に一括インストールを行えます。

pip install -r requirements.txt

Dockerでrequirements.txtを使用する

Dockerでrequirements.txtを使用する場合は、Dockerfileとrequirements.txtを同じディレクトリに配置します。

Dockerfileについては、以下のように定義することでコンテナ作成時に自動でPythonパッケージのインストールを実施します。

「code」の部分は好きなディレクトリ名に書き換えて使用します。

FROM python:latest

RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

参考サイト
pip documentation v21.1.dev0

コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信