【Python】pip install +requirementsでモジュールをまとめてインストール!

ラズパイや仮想環境を新しく立ち上げる際に、必要モジュールを逐一インストールしているととても大変です。
pip コマンド+requirements.txtを使ってモジュールをまとめてインストールする方法をご紹介します。
予めまとめてダウンロードして、別のローカル環境へのインストールに使ったり、応用が利きます。

やること
・requirements.txtの作成
・pip install -r

応用例
・ローカルにダウンロード
・ダウンロードしたパッケージからインストール

それでは順番にみていきましょう!

目次

やること

requirements.txtに必要モジュールを記載し、いつもの「pip install」を必要モジュールをまとめて実行します。

requirements.txtの作成

例としてgpsモジュール関連のライブラリをインストールするケースを想定してみます。
「requirements.txt」を作成し、次のように記述します。
インストールしたいモジュール名を1品1行で書きます。

pyserial
pynmea2
folium
geopy

例では4つのモジュールを指定しています。
このファイルを適切なフォルダに置いておきます。

pip installをまとめて実行

先ほど作成した「requirements.txt」と同じ階層に移動します。
Windows環境であれば、同じ階層からバッチファイルを実行でもOKです。

pip install -r requirements.txt

これだけです。
これで、先ほど指定した4つのモジュールについて、「pip install」が実行されます。

実際にインストールされたか確認したい場合は次を実行します。
対象モジュールが出力されれば、インストールが完了しています。

pip list


基本的なrequirements.txtとpip installをまとめて実行する方法は以上になります。
ここからは応用例です。

応用例

応用例として、ローカル環境にパッケージをダウンロードし、
ダウンロードしたパッケージからインストールする方法をやってみたいと思います。

ローカルにダウンロード

requirements.txtに必要なモジュール名を記載しておきます。
同じ階層に移動してコマンド実行するか、同じ階層からバッチファイルを実行します。

pip download -d ./packages -r requirements.txt

requirements.txtファイルを参照し、packagesフォルダにパッケージをダウンロードされます。
次の構成でpackagesフォルダが作成されます。

packages
requirements.txt

pyserial、pynmea2、folium、geopyの4つのモジュールに対して、次のように必要パッケージがダウンロードされました。

ダウンロードしたパッケージからインストール

ダウンロードしたパッケージからインストールするには、先ほどのコマンドからひと手間入ります。

pip install --no-index --find-links=./packages -r requirements.txt

packagesフォルダを参照し、「pip install -r requirements.txt」を実行します。
「–find-links=./packages」という部分で、ローカルの「packages」フォルダを参照するよう指定しています。

インターネット環境を通じてパッケージを探さないので、
ローカル環境でも追加モジュールをインストールすることができます。

参考

requirements.txtで、モジュールごとにバージョンを指定することができます。

matplotlib>=3.3
numpy>=1.22.2
opencv-python>=4.1.1
Pillow>=7.1.2

例えばmatplotlibはバージョン3.3以上を指定しています。
特定バージョンの場合は「==」、指定バージョン以下は「<=」を演算子に記載します。
範囲指定の場合は次のようにします。

numpy>=1.22.2,<=1.23.0


これで、新しすぎて対応していない場合などにも対応できるようになります。

今回は以上となります。
本記事がお役に立てれば幸いです。
それでは、読んで頂きありがとうございました!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次