パッケージ管理入門
パッケージマネージャー(Package Manager)とは、プログラムが必要とする外部ライブラリ(パッケージ)を自動でインストール・管理するツールです。
レシピ本に書いてある材料を自動で買ってきてくれる「買い物代行サービス」と考えると理解しやすいです。レシピ(JavaScript では package.json、Python では requirements.txt や pyproject.toml)に「この材料が必要」と書いておくだけで、パッケージマネージャーが必要なものをすべて揃えてくれます。
なぜパッケージマネージャーが必要なのか
Section titled “なぜパッケージマネージャーが必要なのか”現代の Web 開発では、ひとつのプロジェクトが数十〜数百の外部ライブラリに依存しています。これらを手動で管理しようとすると、次のような問題が起きます。
- 依存関係の管理が困難になる — ライブラリ A がライブラリ B のバージョン 2.x を必要とするが、ライブラリ C はバージョン 3.x を必要とする、といった複雑な依存関係を人間が追跡するのは現実的ではありません
- バージョンの不一致が起きやすい — チームメンバーそれぞれが異なるバージョンをインストールすると、「自分の環境では動くのに、他のメンバーの環境では動かない」という問題が発生します
- インストール作業が煩雑になる — 新しいメンバーがプロジェクトに参加するたびに、必要なライブラリをひとつずつ手動でインストールしなければなりません
パッケージマネージャーはこれらの問題をすべて解決します。依存関係をファイル(JavaScript の package.json、Python の requirements.txt など)に記録しておけば、コマンド1行でチーム全員が同じ環境を再現できます。
このセクションで学ぶこと
Section titled “このセクションで学ぶこと”このセクションでは、JavaScript / Node.js および Python で使われる代表的なパッケージマネージャーを学びます。
JavaScript / Node.js のパッケージマネージャー
Section titled “JavaScript / Node.js のパッケージマネージャー”| ツール | 特徴 | 対象 |
|---|---|---|
| npm | Node.js に標準搭載。追加インストール不要 | 初心者・すべての Node.js プロジェクト |
| pnpm | npm より高速・省ディスク。グローバルストア方式 | 複数プロジェクトを管理する開発者 |
npm(Node Package Manager)は Node.js に最初から搭載されているパッケージマネージャーです。Node.js をインストールすると自動的に使えるようになるため、JavaScript 開発の出発点として最も広く使われています。
pnpm(Performant npm)は npm の上位互換として設計されたパッケージマネージャーです。インストール速度が速く、ディスクの使用量を大幅に削減できます。複数のプロジェクトを並行して進める場合や、ディスク容量を節約したい場合に特に効果的です。
Python のパッケージマネージャー
Section titled “Python のパッケージマネージャー”| ツール | 特徴 | 対象 |
|---|---|---|
| pip | Python に標準搭載。追加インストール不要 | Python 初心者・すべての Python プロジェクト |
| uv | Rust 製の超高速ツール。pip より 10〜100 倍高速 | 速度重視・AI 開発・CI 環境の最適化 |
pip は Python に最初から搭載されているパッケージマネージャーです。pip install コマンドで PyPI に公開されている 50 万以上のパッケージをインストールできます。仮想環境(venv)と組み合わせてプロジェクトごとに依存関係を管理するのが標準的な使い方です。
uv は Rust で実装された高速な Python パッケージマネージャーです。pip と同じ操作感で使えますが、インストール速度が大幅に向上しています。2026年現在、AI 開発ツールとの親和性が高く、Claude Code との組み合わせでの採用が広がっています。
どれから始めるべきか
Section titled “どれから始めるべきか”初めてパッケージ管理を学ぶ場合は、使用する言語に合わせて標準ツールから始めることを推奨します。
- JavaScript を使う場合: npm → 慣れてきたら pnpm へ
- Python を使う場合: pip → 速度や CI 効率化が必要になったら uv へ
標準ツールの基本を理解したうえで、必要に応じて高速ツールへ移行するのがスムーズな学習の流れです。
よくある質問
Section titled “よくある質問”Q: パッケージマネージャーは JavaScript 専用ですか?
A: いいえ。各プログラミング言語にそれぞれのパッケージマネージャーがあります。このセクションでは JavaScript / Node.js 向け(npm・pnpm)と Python 向け(pip・uv)を扱います。
| 言語 | 標準ツール | 高速ツール |
|---|---|---|
| JavaScript / Node.js | npm | pnpm |
| Python | pip | uv |
| Ruby | gem | bundler |
| Rust | cargo | — |
Q: npm と pnpm は同時に使えますか?
A: はい、同じプロジェクトで混在させることは推奨しませんが、PC 上に両方インストールしてプロジェクトごとに使い分けることは可能です。pip と uv も同様です。
Q: JavaScript のパッケージをインストールするとどこに保存されますか?
A: プロジェクトフォルダ内の node_modules フォルダに保存されます。このフォルダは容量が大きくなるため、Git で管理しないように設定します(詳細は npm のページで説明します)。
Q: Python のパッケージをインストールするとどこに保存されますか?
A: 仮想環境(venv)を使っている場合は、プロジェクトフォルダ内の venv(または .venv)フォルダに保存されます。仮想環境を使わずにグローバルにインストールすると、Python のインストール先(site-packages)に保存されます。仮想環境を使うことを推奨します(詳細は pip のページで説明します)。