閉じる

requirements.txtで一括インストールする手順(pip install -r)

複数のライブラリを毎回手作業でインストールするとミスや環境差異が発生しがちです。

requirements.txtに必要なパッケージ一覧を保存しておけば、pip install -rで一括再現できます。

本記事では作り方から実行方法、つまずきやすいエラーの対処までを、初心者向けに丁寧に解説します。

requirements.txtと一括インストールの基本

requirements.txtとは?

requirements.txtは、Pythonプロジェクトで使用する外部ライブラリ(パッケージ)名とバージョンを1行ずつ列挙したテキストファイルです。

これを共有することで、他の開発者や別のPCでも同じライブラリ構成を再現できます。

同じrequirements.txtを使えば同じ環境を再現できるというのが最大の価値です。

以下は典型的な記述例です。

行頭の#はコメントです。

txt
# requirements.txt の例
requests==2.32.3      # HTTPクライアント
pandas~=2.2           # 互換のある最新の2.2系を許可(2.2.*)
numpy>=1.26,<2.0      # 上限/下限を明示して互換性を担保
tqdm                  # バージョン未指定(再現性は下がるので注意)

一括インストールのメリット

requirements.txtから一括インストールすることで、インストール漏れを防ぎ、開発者間の環境差を抑え、CIや本番サーバーへのデプロイも安定します。

プロジェクトの初回セットアップが数分で終わるため、オンボーディングもスムーズになります。

「人手で1つずつ入れる」より確実で高速です。

下表は主なメリットの整理です。

利用場面期待できる効果
新規開発者の参加セットアップ手順が短縮し、環境差異を減らす
CI/CDビルド環境を再現しやすく、結果が安定
バグ再現同一のパッケージ構成で検証が可能
セキュリティ対応versionsの固定により追跡・更新が容易

pip install -rの概要

pip install -rは、ファイルに列挙されたパッケージを順に解決・インストールする機能です。

実行の基本形は次のとおりです。

Shell
# 現在のPythonに紐づくpipを明示的に使う(推奨)
python -m pip install -r requirements.txt

実行すると、pipはファイルを上から読み、依存関係を解決しながらインストールします。

必要に応じて--upgrade--no-cache-dir、社内リポジトリ向けの--index-urlなどのオプションも利用できます。

OSやPythonの組み合わせが異なると依存関係も変わりやすいため、後述の仮想環境(venv)でプロジェクトごとに分けるのが実務では定番です。

事前準備とrequirements.txtの作成

Python/pipの確認

まずは手元のPythonとpipが使えるか確認します。

環境によって実行コマンド名が異なる点に注意してください。

PowerShell
# Windows PowerShell の例
python --version          # Pythonのバージョンを確認
python -m pip --version   # pipのバージョンを確認
実行結果
Python 3.11.9
pip 24.2 from C:\Path\to\Python311\Lib\site-packages\pip (python 3.11)
Shell
# macOS/Linux の例
python3 --version
python3 -m pip --version
実行結果
Python 3.11.9
pip 24.2 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)

Windowsで複数バージョンのPythonがある場合は、pyランチャーが便利です。

PowerShell
# 指定バージョンのpipを明示
py -3.11 -m pip --version

仮想環境(venv)を使う前提

プロジェクトごとに環境を分けると、他プロジェクトへの影響や権限エラーを避けられます。

標準のvenvで問題ありません。

PowerShell
# Windows: カレントフォルダに .venv を作成
python -m venv .venv

# PowerShellで仮想環境を有効化
.\.venv\Scripts\Activate.ps1

# pipを最新化(依存解決の精度向上のために推奨)
python -m pip install --upgrade pip
Shell
# macOS/Linux: venvを作成して有効化
python3 -m venv .venv
source .venv/bin/activate

# pipを最新化
python -m pip install --upgrade pip
実行結果
(.venv) というプレフィックスがプロンプトに付き、仮想環境が有効化されたことを示します

PowerShellの実行ポリシーで有効化に失敗する場合は、以下を一度だけ実行してください。

PowerShell
# ユーザー範囲でスクリプト実行を許可
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

requirements.txtを作る(pip freeze)

既に環境に導入済みのライブラリをファイル化するにはpip freezeが簡単です。

仮想環境を有効化してから実行します。

Shell
# 現在の環境に入っているパッケージと固定バージョンを出力
python -m pip freeze > requirements.txt

# 内容を確認
cat requirements.txt   # Windowsなら 'type requirements.txt'
実行結果
certifi==2024.7.4
charset-normalizer==3.3.2
idna==3.7
numpy==1.26.4
pandas==2.2.2
python-dateutil==2.9.0.post0
pytz==2024.1
requests==2.32.3
tqdm==4.66.4
urllib3==2.2.2

pip freezeは依存関係も含めて「すべて」固定します。

アプリが直接使っていないライブラリも入る点を理解しておくと良いです。

既存プロジェクトから最小限を書きたい場合

最初は手で作っても構いません。

必要なパッケージだけ列挙して、許容範囲の指定子(後述)を付ける方法もあります。

txt
# 手書きの最小例
requests==2.32.3
pandas~=2.2
numpy>=1.26,<2.0
tqdm

バージョン固定のポイント

再現性を高めるには「どこまで固定するか」の方針が重要です。

本番やチーム共有では、原則としてバージョンを固定(==)するのが安全です。

学習・検証用途なら範囲指定でも構いません。

指定子意味
==requests==2.32.3そのバージョンに完全固定
~=pandas~=2.2互換範囲(2.2.*)の最新を許可
>=,<numpy>=1.26,<2.0下限と上限を明示して互換性を担保
無指定tqdm常に最新を入れる(再現性は下がる)

>=だけで上限を設けないと、将来のメジャーアップデートで壊れる可能性が高まります。

下限と上限をセットで書くか、==で固定するのが定石です。

上級者向けですが、依存グラフを解決して確定版を生成するpip-tools(pip-compile)や、ハッシュ固定(サプライチェーン対策)の活用もあります。

最初はrequirements.txtの明示的な固定から始めれば十分です。

一括インストールの手順(pip install -r)

コマンド例(Windows)

以下はPowerShell前提の例です。

仮想環境を有効化してから実行してください。

PowerShell
# 1) プロジェクトのルートへ移動
Set-Location C:\path\to\your-project

# 2) 仮想環境を有効化(未作成なら前章を参照)
.\.venv\Scripts\Activate.ps1

# 3) pipを最新化(推奨)
python -m pip install --upgrade pip

# 4) requirements.txtから一括インストール
python -m pip install -r .\requirements.txt
実行結果
Collecting requests==2.32.3 (from -r requirements.txt (line 1))
  Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Collecting pandas~=2.2 (from -r requirements.txt (line 2))
  Downloading pandas-2.2.2-cp311-cp311-win_amd64.whl (11.2 MB)
Collecting numpy>=1.26,<2.0 (from -r requirements.txt (line 3))
  Downloading numpy-1.26.4-cp311-cp311-win_amd64.whl (15.8 MB)
Collecting tqdm (from -r requirements.txt (line 4))
  Downloading tqdm-4.66.4-py3-none-any.whl (78 kB)
Installing collected packages: tqdm, numpy, requests, pandas
Successfully installed numpy-1.26.4 pandas-2.2.2 requests-2.32.3 tqdm-4.66.4

補足: パスやファイル名に空白がある場合

PowerShell
python -m pip install -r ".\folder with space\requirements.txt"

コマンド例(macOS/Linux)

UNIX系でも基本は同じです。

python3コマンドを使う環境が多い点に注意します。

Shell
# 1) プロジェクトへ移動
cd /path/to/your-project

# 2) 仮想環境を有効化
source .venv/bin/activate

# 3) pipを最新化(推奨)
python -m pip install --upgrade pip

# 4) 一括インストール
python -m pip install -r requirements.txt
実行結果
Collecting requests==2.32.3 (from -r requirements.txt (line 1))
Collecting pandas~=2.2 (from -r requirements.txt (line 2))
Collecting numpy<2.0,>=1.26 (from -r requirements.txt (line 3))
Collecting tqdm (from -r requirements.txt (line 4))
Installing collected packages: tqdm, numpy, requests, pandas
Successfully installed numpy-1.26.4 pandas-2.2.2 requests-2.32.3 tqdm-4.66.4

よく使うオプション

  • --upgrade: 許容範囲内で新しいバージョンへ更新
  • --no-cache-dir: キャッシュを使わずにダウンロード
  • --index-url: 社内PyPIやミラーを使う
  • --extra-index-url: 公式に加えて追加のインデックスも参照

インストール後の確認(pip list)

インストールされたパッケージはpip listpip showで確認できます。

Shell
python -m pip list
実行結果
Package    Version
---------- -------
numpy      1.26.4
pandas     2.2.2
requests   2.32.3
tqdm       4.66.4

Python側からインポートできるかも確認しておくと安心です。

Python
# verify_install.py
# 指定したパッケージをインポートし、バージョンを表示する簡単なチェック
import importlib

packages = ["requests", "pandas", "numpy", "tqdm"]
for name in packages:
    try:
        mod = importlib.import_module(name)  # モジュールを動的に読み込む
        ver = getattr(mod, "__version__", "unknown")  # __version__ がない場合は unknown
        print(f"{name} {ver}")
    except Exception as e:
        print(f"{name} import failed: {e}")
Shell
# 実行
python verify_install.py
実行結果
requests 2.32.3
pandas 2.2.2
numpy 1.26.4
tqdm 4.66.4

トラブルシュート(よくあるエラー)

Permissionエラーの対処

WindowsやLinuxでDefaulting to user installationPermissionError、macOSでOperation not permittedなどが出たら、仮想環境を使うのが最優先の解決策です。

プロジェクト内の.venvを有効化して再実行してください。

どうしても全体(ユーザー領域)に入れたい場合は--userオプションを付けます。

Shell
# ユーザー領域にインストール(グローバルではない)
python -m pip install --user -r requirements.txt

管理者権限でのグローバルインストールやsudo pipは推奨されません

システムPythonを壊す恐れがあるため、基本はvenvを使います。

SSLやプロキシのエラー

社内ネットワークや独自証明書環境では、SSLError: CERTIFICATE_VERIFY_FAILEDProxyErrorが発生しがちです。

代表的な回避策は以下です。

  • 企業プロキシ配下では一時的に環境変数を設定します(端末を閉じると解除されます)。
PowerShell
# Windows PowerShell
$env:HTTP_PROXY="http://user:password@proxy.example.com:8080"
$env:HTTPS_PROXY="http://user:password@proxy.example.com:8080"
python -m pip install -r requirements.txt
Shell
# macOS/Linux
export HTTP_PROXY="http://user:password@proxy.example.com:8080"
export HTTPS_PROXY="http://user:password@proxy.example.com:8080"
python -m pip install -r requirements.txt
  • 社内証明書を使う場合は、証明書パスを指定します。
Shell
python -m pip install --cert /path/to/corporate-ca.pem -r requirements.txt
  • ミラーや社内PyPIを使う場合は、インデックスURLを指定します。
Shell
python -m pip install --index-url https://pypi.org/simple -r requirements.txt
# 追加のインデックスを併用
python -m pip install --extra-index-url https://mirror.example.com/simple -r requirements.txt

一時的に--trusted-hostを使う回避もありますが、セキュリティ低下に注意してください。

依存関係の競合を解消する

ResolutionImpossiblebecause these package versions have conflictsというエラーは、指定したバージョン同士が両立しないことを示します。

例えば、pandas 2.2.* は numpy >=1.26,<2.0 を要求しますが、requirements.txtでnumpy>=2.0を要求していると衝突します。

対処の考え方は次のとおりです。

  1. pipを最新化して解決精度を上げる
    python -m pip install --upgrade pip
    
  2. エラーメッセージを読み、要求範囲を合わせる
    例:numpy>=1.26,<2.0に修正して再実行。
  3. クリーンな仮想環境でやり直す
    既存環境に残った古いライブラリが干渉することがあります。
  4. pip checkで整合性を検査
    python -m pip check
    
  5. 上級: pip-toolsで依存を解決した固定ファイルを生成(チームで安定化させたい場合に有効)。

衝突は「範囲を緩める」のではなく「互換範囲に合わせる」のが基本方針です。

requirements.txtが見つからない場合

ERROR: Could not open requirements file: [Errno 2] No such file or directoryが出たら、ファイルの場所と名前をまず確認します。

カレントディレクトリが正しいかを確認し、必要なら移動します。

Shell
# 中身を確認
ls -l
# または
dir

絶対パスや引用符を利用します(空白を含むパス対策)。

PowerShell
python -m pip install -r "C:\Users\you\project\requirements.txt"

拡張子や綴りミス(requirement.txtなど)を見直します。

まとめ

requirements.txtは、Pythonプロジェクトにおけるライブラリ管理の基本であり、同じ環境を素早く確実に再現する鍵です。

仮想環境(venv)を使い、pip freezeまたは手書きで必要なパッケージを整理し、pip install -r requirements.txtで一括インストールすれば、セットアップが安定します。

バージョンは可能な限り固定し、衝突時は互換範囲を合わせるのがコツです。

今回の手順とトラブルシュートを押さえておけば、新しいPCでもチームメンバーの環境でも、同じ動作を再現できます。

この記事を書いた人
エーテリア編集部
エーテリア編集部

人気のPythonを初めて学ぶ方向けに、文法の基本から小さな自動化まで、実際に手を動かして理解できる記事を書いています。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!