コンテンツにスキップ
X

pip - Python 標準パッケージマネージャー

pip(ピップ)とは、Python に標準搭載されているパッケージマネージャーです。Python で書かれたライブラリやツールを、コマンド1行でインストール・管理できます。

JavaScript の npm が Node.js に標準搭載されているのと同様に、pip は Python に最初から含まれています。「Python の App Store」と考えると分かりやすいです。PyPI(パイピーアイ) という公式リポジトリに公開されている 50 万以上のパッケージを、コマンド1行で取得できます。

対象読者: Python を始めたばかりで外部ライブラリのインストール方法を学びたい方

学習時間の目安: 読了 10分 + 実践 15分

前提知識: Python のインストール済み

Python でデータ分析や AI の開発をしようとすると、Python の標準ライブラリだけでは不十分なことがほとんどです。例えば:

  • データ分析 には pandas(データ操作)や numpy(数値計算)が必要
  • AI・機械学習 には scikit-learntorch(PyTorch)が必要
  • Web 開発 には flaskfastapi が必要

これらを手動でダウンロード・配置するのは現実的ではありません。pip を使えば、依存するライブラリも含めて自動でインストールされます。

Python 3.4 以降には pip が標準で含まれています。まず pip が使える状態か確認しましょう。

pip --version

次のように表示されれば成功です。

pip 24.0 from /usr/local/lib/python3.12/site-packages/pip (python 3.12)

pip: command not found と表示された場合は、pip3 を試してください。

pip3 --version

macOS では python コマンドが Python 2 を指している場合があり、Python 3 向けの pip は pip3 という名前になっています。このドキュメントでは以降 pip と記載しますが、環境に応じて pip3 に読み替えてください。

コマンド説明使う場面
pip install <pkg>パッケージをインストール新しいライブラリを追加したいとき
pip install <pkg>==1.2.3バージョンを指定してインストール特定バージョンが必要なとき
pip uninstall <pkg>パッケージをアンインストール不要になったとき
pip listインストール済みパッケージを一覧表示何が入っているか確認するとき
pip freezeインストール済みパッケージをバージョン付きで出力requirements.txt を作成するとき
pip show <pkg>パッケージの詳細情報を表示バージョンやインストール場所を確認するとき
pip install -r requirements.txtファイルに記載されたパッケージを一括インストールプロジェクトをセットアップするとき
# Flask をインストールする
pip install flask

# バージョンを指定してインストールする
pip install flask==3.0.0

# インストール済みの一覧を確認する
pip list

# 詳細情報を確認する
pip show flask

pip show flask の出力例:

Name: Flask
Version: 3.0.3
Summary: A simple framework for building complex web applications.
Location: /usr/local/lib/python3.12/site-packages
Requires: blinker, click, itsdangerous, jinja2, werkzeug

requirements.txt とは、プロジェクトが必要とするパッケージとそのバージョンを記録したテキストファイルです。「プロジェクトの材料リスト」と考えると分かりやすいです。

チームで開発する場合や、別の PC でプロジェクトを動かす場合、「自分の環境でインストールしたパッケージ」を他の人にも同じバージョンで再現してもらう必要があります。requirements.txt があれば、コマンド1行で同じ環境を再現できます。

現在の環境にインストールされているパッケージを requirements.txt に書き出します。

pip freeze > requirements.txt

生成された requirements.txt の例:

flask==3.0.3
blinker==1.8.2
click==8.1.7
itsdangerous==2.2.0
jinja2==3.1.4
markupsafe==2.1.5
werkzeug==3.0.3

他の人がプロジェクトをセットアップする場合や、新しい環境でセットアップする場合は次のコマンドを実行します。

pip install -r requirements.txt

これで requirements.txt に記載されているパッケージがすべて同じバージョンでインストールされます。

requirements.txt は Git で管理します。プロジェクトに参加した人が pip install -r requirements.txt を実行するだけで、同じ環境を再現できます。

仮想環境(virtual environment)とは、プロジェクトごとに独立した Python の実行環境を作る仕組みです。「プロジェクトごとに独立した作業部屋」と考えると分かりやすいです。

仮想環境を使わずに pip でパッケージをインストールすると、PC 全体(グローバル環境)にパッケージが入ります。すると次のような問題が起きます。

  • プロジェクト A は flask 2.x を必要とし、プロジェクト B は flask 3.x を必要とする場合、両方を同時に使えない
  • あるプロジェクトのパッケージが別のプロジェクトに影響する

仮想環境を使うと、プロジェクトごとに独立したパッケージ管理ができます。

venv は Python 3.3 以降に標準搭載されている仮想環境ツールです。

ステップ 1: 仮想環境を作成する

Section titled “ステップ 1: 仮想環境を作成する”

プロジェクトフォルダ内で次のコマンドを実行します。

python -m venv venv

これでプロジェクトフォルダ内に venv フォルダが作成されます。

my-project/
├── venv/          ← 仮想環境(パッケージがここに入る)
│   ├── bin/
│   ├── lib/
│   └── ...
└── main.py

ステップ 2: 仮想環境を有効化する

Section titled “ステップ 2: 仮想環境を有効化する”
# macOS / Linux
source venv/bin/activate

# Windows(コマンドプロンプト)
venv\Scripts\activate.bat

# Windows(PowerShell)
venv\Scripts\Activate.ps1

有効化されると、プロンプトの先頭に (venv) が表示されます。

(venv) $

ステップ 3: パッケージをインストールする

Section titled “ステップ 3: パッケージをインストールする”

仮想環境が有効な状態で pip install を実行すると、グローバルではなく仮想環境内にパッケージが入ります。

(venv) $ pip install flask

ステップ 4: 仮想環境を無効化する

Section titled “ステップ 4: 仮想環境を無効化する”

作業が終わったら次のコマンドで仮想環境から抜けます。

deactivate

venv フォルダは Git で管理しません。サイズが大きく、OS やバージョンによって異なるため、.gitignore に追加します。

# .gitignore
venv/
__pycache__/
*.pyc

他の人がプロジェクトをセットアップする手順は次のようになります。

# リポジトリをクローン
git clone <repository-url>
cd <project-folder>

# 仮想環境を作成して有効化
python -m venv venv
source venv/bin/activate

# 必要なパッケージをインストール
pip install -r requirements.txt

pip と venv を使った実践例として、Flask の Web サーバーを動かしてみましょう。

# 1. プロジェクトフォルダを作成して移動
mkdir my-flask-app
cd my-flask-app

# 2. 仮想環境を作成して有効化
python -m venv venv
source venv/bin/activate   # macOS / Linux

# 3. Flask をインストール
pip install flask

# 4. インストールを確認
pip show flask

次に app.py を作成します。

# app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"

if __name__ == "__main__":
    app.run(debug=True)
# 5. サーバーを起動
python app.py

起動後にブラウザで http://localhost:5000 を開くと「Hello, World!」が表示されます。

# 6. requirements.txt を作成(他の人と共有するため)
pip freeze > requirements.txt

# 7. 作業終了後に仮想環境を無効化
deactivate

原因: Python がインストールされていないか、PATH が設定されていない。

解決法: まず pip3 を試してください。

pip3 --version

それでも解決しない場合は、Python が正しくインストールされているか確認します。

python3 --version

Python が入っていれば、次のコマンドで pip を有効化できます。

python3 -m ensurepip --upgrade

ModuleNotFoundError: No module named 'xxx'

Section titled “ModuleNotFoundError: No module named 'xxx'”

原因: パッケージがインストールされていない、または仮想環境外でインストールした。

解決法: 仮想環境が有効化されているか確認してから、パッケージをインストールします。

# 仮想環境を有効化(プロンプトに (venv) が表示されるか確認)
source venv/bin/activate

# パッケージをインストール
pip install <パッケージ>

ERROR: Could not install packages due to an OSError

Section titled “ERROR: Could not install packages due to an OSError”

原因: ディスクの空き容量が不足しているか、パーミッションの問題。

解決法: 仮想環境を使っているか確認してください。グローバル環境にインストールしようとするとパーミッションエラーが起きやすいです。仮想環境内であれば sudo なしでインストールできます。

大きなパッケージや依存関係が多いパッケージはインストールに時間がかかることがあります。高速なパッケージマネージャーが必要な場合は、次のステップで紹介する uv を検討してください。

  • pip は Python 標準のパッケージマネージャー。Python をインストールすると使える
  • pip install <パッケージ名> でライブラリをインストールできる
  • requirements.txt でプロジェクトの依存関係を記録・再現できる
  • venv と組み合わせてプロジェクトごとに独立した環境を管理する
  • venv フォルダは .gitignore に追加して Git の管理対象外にする

Q: pip と pip3 の違いは何ですか?

A: pippip3 は、どちらの Python バージョンに対して動作するかが異なります。macOS では python が Python 2 を指すことがあり、その場合 pip も Python 2 向けになります。Python 3 を使っている場合は pip3 を使うと確実です。仮想環境の中では pip が自動的に Python 3 向けになります。

Q: requirements.txt と package.json(npm)の違いは何ですか?

A: 役割は似ていますが、requirements.txt はシンプルなテキスト形式で、pip freeze で自動生成します。package.json はプロジェクト名やスクリプトなども含む JSON 形式です。Python では pyproject.toml が package.json に近い役割を持ちます。

Q: venv と conda(Anaconda)の違いは何ですか?

A: venv は Python 標準の仮想環境ツールで、Python パッケージのみを管理します。conda はデータサイエンス向けのパッケージ管理ツールで、Python 以外のパッケージ(C ライブラリなど)も管理できます。一般的な開発には venv が軽量でシンプルです。

Q: 仮想環境を使わなければいけませんか?

A: 必須ではありませんが、強く推奨します。グローバル環境に pip でインストールしていくと、プロジェクト間のバージョン競合が起きやすくなります。仮想環境を使う習慣をつけることで、「自分の PC では動くのに他の環境では動かない」という問題を予防できます。