pip とは何者なのか
pip は、自分で書いたわけじゃない Python ライブラリをインストールしてくれるツールです。たとえば pip install requests を実行すると、PyPI(Python Package Index)から requests を探し出し、自分の環境に合ったバージョンをダウンロードして、Python がインストールされている場所の site-packages ディレクトリに放り込んでくれます。これで import requests が使えるようになる、という仕組みです。
python.org、Homebrew、あるいは Linux のパッケージマネージャーから入れた Python 3 であれば、pip は最初から同梱されています。何かをインストールする前に、まずは動くか確認しておきましょう。
python -m pip --version
バージョン番号と pip モジュールのパスが表示されるはずです。コマンドが失敗する場合、もっとも確実な対処法は次のとおりです。
python -m ensurepip --upgrade
これで、Python インタプリタに同梱されている pip が、あなたの Python 環境にセットアップされます。
python -m pip と pip の違い
この 2 つの書き方、どちらも目にしたことがあるはずです。やっていることはほぼ同じですが、1 つだけ大事な違いがあります。python -m pip は PATH 上の python を使う、つまりスクリプトを実行するときと同じ Python を使います。一方、ただの pip は、たまたま最初に見つかった pip を使うだけで、必ずしも同じものとは限りません。
複数の Python がインストールされている環境では(macOS では特になりがちです)、この「pip だけで実行する」やり方こそが、「ライブラリはインストールしたはずなのに、コードを動かすと ModuleNotFoundError が出る」という、あの厄介な状況を生む原因になります。
覚えておきたいコツ: どの Python インタプリタにパッケージを入れるかを確実にコントロールしたいなら、python -m pip ... を使いましょう。使う Python がはっきりしている軽い作業なら、pip だけでも問題ありません。
パッケージをインストールする
基本となる pip install コマンドはこちらです。
python -m pip install requests
これで requests が PyPI から依存パッケージごとダウンロードされ、インストールされます。1分もすれば、こんな感じで使えるようになります。
複数のパッケージをまとめてインストールする:
python -m pip install requests pandas rich
バージョンを固定する場合:
python -m pip install "django==5.0.2"
python -m pip install "requests>=2.30,<3"
シェルによってはクォートが重要になります。== や < がシェルの演算子として解釈されないように、クォートで囲んでおきましょう。
パッケージのアップデートとアンインストール
python -m pip install --upgrade requests
python -m pip uninstall requests
--upgrade を付けると、指定した条件を満たす最新バージョンを取得してくれます。uninstall はパッケージ本体だけを削除するコマンドで、依存パッケージは残ったままになります。不要になった依存パッケージは、自分で明示的にアンインストールする必要があります。
pip 自体をアップデートするには、次のコマンドを実行します。
python -m pip install --upgrade pip
数ヶ月に一度くらいは実行しておくといいでしょう。新しいバージョンの pip ほどインストール時の問題を検知しやすく、依存関係の解決も賢くなっています。
インストール済みパッケージを確認する
python -m pip list
python -m pip show requests
list を使うと、いまの Python 環境にインストールされているパッケージが一覧で確認できます。show requests のように指定すれば、そのパッケージのバージョン・インストール先・依存関係・ライセンスが表示されるので、「あれ、結局いまどのバージョン使ってるんだっけ?」というときに便利です。
requirements.txt で依存ライブラリを書き出す
ライブラリが数個を超えてくると、依存関係をファイルにまとめておくのがおすすめです。これを自動でやってくれるのが pip freeze コマンドです。
python -m pip freeze > requirements.txt
これを実行すると、1行につき1つのバージョン固定された依存パッケージが書き出されたファイルが生成されます。
django==5.0.2
requests==2.31.0
rich==13.7.1
リポジトリをクローンした人は、次のコマンドでまったく同じ環境を再現できます。
python -m pip install -r requirements.txt
pip freeze はインストール済みのものをすべて吐き出します。依存関係の依存関係(いわゆる推移的な依存)まで含まれるので、完全な再現性を求めるには便利ですが、自分のコードが実際に import しているトップレベルのライブラリだけを管理したい場合はノイズが多くなります。そのため、多くのプロジェクトでは直接依存するライブラリだけを手書きで requirements.txt にまとめ、推移的な依存は pip に任せる運用が一般的です。
最近のプロジェクトでは、requirements.txt に代わって pyproject.toml(pip-tools、uv、poetry、hatch などと組み合わせて使う)が主流になりつつあります。考え方は同じで、「依存関係をファイルに書いておいて、コマンド一発でインストールする」というもの。ただ、ファイル形式がより構造化されているというだけです。
python パッケージは必ず仮想環境にインストールする
実用的な Python プロジェクトには、必ず仮想環境を用意しましょう。仮想環境とは、プロジェクトごとに作る専用フォルダで、その中に独立した python とインストール済みパッケージを持ちます。こうしておけば、あるプロジェクトで pip install しても他のプロジェクトには影響しません。
セットアップは次の2行だけです。
python -m venv .venv
source .venv/bin/activate # macOS / Linux
# or .venv\Scripts\activate on Windows
仮想環境を有効化した状態で python -m pip install requests を実行すると、パッケージは venv の中に インストールされます。システム側の Python はそのままクリーンな状態を保てます。詳しくは 仮想環境のページ で解説しています。
もし pip install を実行したときに「システムの Python にインストールしようとしています」という警告や、「--break-system-packages を付けてください」といったメッセージが出たら、一度立ち止まりましょう。それは venv を作るべきサインです。
pip でパッケージがインストールできないとき
よくある失敗パターンと、その意味をまとめておきます。
Could not find a version that satisfies the requirement …— たいていはパッケージ名のタイプミスか、そのパッケージが今使っている Python より新しいバージョンを要求しているケースです。error: Microsoft Visual C++ 14.0 or greater is required(Windows)— ネイティブ拡張を含むパッケージで、C++ のビルドツールチェインが必要です。Microsoft の Build Tools をインストールするか、ビルド済みの wheel を探しましょう(メジャーなパッケージはたいてい wheel を配布しています)。Permission denied— システム Python に管理者権限なしでインストールしようとしています。正解はsudo pip installではなく、仮想環境を使うことです。- インストール後の
ModuleNotFoundError— ほぼ間違いなく、pip installでパッケージが入った Python と、スクリプトを実行している Python が別物になっています。macOS/Linux ならwhich pythonとwhich pip、Windows ならwhere python/where pipで確認を。あるいは最初からpython -m pip install ...の形で実行するのが一番確実です。
pip の代替ツール
関連ツールとして名前を見かけるものをいくつか紹介します。いずれも pip と互換性があり、特定の不満を解消してくれます。
uv— 圧倒的に高速なインストーラー兼リゾルバ。ほとんどの pip コマンドをそのまま置き換えられます。pipx—black、ruff、httpieのようなコマンドラインツールを専用の venv に隔離してインストールするためのツール。プロジェクトの依存関係とぶつからずに、グローバルに使えるようになります。poetryとhatch— 仮想環境の管理、依存解決、ビルドまでを一つにまとめたプロジェクト管理ツールです。
最初の一日目からこれらを使う必要はありません。まずは pip に慣れて、実際に困ったときに乗り換えを検討すればいい、というスタンスで大丈夫です。
次は仮想環境へ
パッケージと仮想環境はセットで考えるものです。その理由はここまでで見てきたとおり。次のページでは venv の作成・有効化・無効化、そして Python プロジェクトをきれいに保つためのちょっとした慣習まで、じっくり見ていきます。
よくある質問
Pythonのpipとは何ですか?
pipはPython公式のパッケージインストーラーで、PyPI(Python Package Index)からサードパーティ製ライブラリをダウンロードしてインストールしてくれるツールです。例えばpip install requestsを実行すれば、requestsライブラリが取得され、Pythonインタプリタからimportできる場所に配置されます。最近のPython 3には最初から同梱されています。
pipをインストールするには?
基本的にPythonに同梱されているので、改めてインストールする必要はありません。pip --versionで「コマンドが見つかりません」と出る場合は、python -m ensurepip --upgradeかpython -m pip install --upgrade pipを実行してみてください。macOSやLinuxでpipが効かないときは、Python 3側を指すpip3コマンドを使うのが確実です。
pipをアップデートするには?
python -m pip install --upgrade pipを実行すればOKです。pip単体ではなくpython -m pipの形で叩くのがポイントで、こうすることで「今使っているPythonインタプリタ」に確実にアップグレードが反映されます。複数バージョンのPythonを入れている環境では特に重要なテクニックです。
パッケージはグローバルと仮想環境、どちらにインストールすべき?
使い捨てのスクリプトでもない限り、プロジェクトごとに仮想環境を作るのが鉄則です。グローバルにインストールするとプロジェクト間でバージョン衝突が起きたり、システムのPython環境が汚染されたりします。標準ライブラリのvenvモジュールを使えば十分で、詳しくは「仮想環境」のページで解説しています。