結論:npm も pip も「他人が作った部品(ライブラリ)をネットからダウンロードして、自分のプロジェクトに組み込むための道具」です。言語ごとに名前が違うだけで役割は同じ。覚えるコマンドは実質 install / uninstall / list / update の4つだけです。
プログラミングの入門記事や動画を見ていると、いきなり npm install ... や pip install ... というコマンドが出てきて「これは何のおまじない?」と戸惑う人が多いはずです。この記事は、その正体を一気に整理します。
パッケージマネージャとは:ライブラリを入れる「アプリストア」
プログラムは、ゼロからすべて自分で書くわけではありません。日付を扱う処理、画像を縮小する処理、Webサーバーを立てる処理――こうした「よくある機能」は、世界中の誰かがすでにライブラリ(部品の詰め合わせ)として公開しています。
その部品をネット上の倉庫からダウンロードして、自分のプロジェクトで使えるように配置してくれるのがパッケージマネージャです。スマホの「アプリストア」を想像すると近いです。アプリストアがアプリを検索・インストール・更新・削除してくれるのと同じことを、プログラムの部品に対してやってくれます。
- ライブラリ(パッケージ) = 入れたい部品そのもの
- パッケージマネージャ = 部品を出し入れするツール(
npm,pipなど) - レジストリ = 部品が集まっている倉庫(npm なら npm レジストリ、pip なら PyPI)
「ライブラリって何?」がまだピンとこない人は、先に ライブラリ・フレームワークとは を読むと、この記事が一段わかりやすくなります。
言語ごとに名前が違うだけ:代表的なパッケージマネージャ
やっていることはどれも同じ「部品を入れる」です。言語を変えると道具の名前が変わる、と覚えれば十分です。
| 言語・環境 | パッケージマネージャ | 倉庫(レジストリ) |
|---|---|---|
| JavaScript / Node.js | npm(yarn / pnpm も同種) | npm |
| Python | pip | PyPI |
| Ruby | gem(まとめ役は Bundler) | RubyGems |
| Rust | cargo | crates.io |
| PHP | composer | Packagist |
| Go | go get / go install | pkg.go.dev |
| Linux(OS本体) | apt / dnf など | 各ディストリの倉庫 |
apt のような OSのパッケージマネージャも考え方は同じで、こちらは「ソフトウェアそのもの」を入れる係です。混同しやすいので、OS側のコマンドは Linuxの基本コマンド入門 で別途つかんでおくと整理できます。
覚えるコマンドは4つだけ
パッケージマネージャは機能が多く見えますが、初心者がまず使うのはこの4パターンだけです。npm と pip で並べます(<名前> に入れたい部品の名前が入ります)。
1. 入れる(install)
npm install <名前>
pip install <名前>
2. 消す(uninstall / remove)
npm uninstall <名前>
pip uninstall <名前>
3. いま入っているものを一覧する(list)
npm list
pip list
4. 新しくする(update / upgrade)
npm update <名前>
pip install --upgrade <名前>
残りの細かいオプションは、必要になったときに調べれば大丈夫です。最初は「入れる・消す・確認する」の3つだけで十分に前へ進めます。
「どこに」入るのか:ローカルとグローバル
初心者が一番混乱するのが、部品が入る場所です。大きく2種類あります。
- プロジェクト(ローカル)にだけ入れる:
npm install <名前>。そのプロジェクトのフォルダの中(Node ならnode_modules)に入り、他のプロジェクトには影響しません。基本はこちら。 - パソコン全体(グローバル)に入れる:
npm install -g <名前>やpip install <名前>(環境による)。どのプロジェクトからでも使えますが、プロジェクトごとにバージョンが食い違う原因にもなります。
原則は「そのプロジェクトで使う部品は、そのプロジェクトの中に入れる」。こうしておくと、あとで別の人が同じプロジェクトを動かすときに、同じ部品をそっくり再現できます。
依存関係をメモしておくファイル
「このプロジェクトはどの部品を使っているか」を記録しておくファイルがあります。
- npm →
package.json(入れた部品が自動で書き足される) - pip →
requirements.txt(pip freeze > requirements.txtで書き出す)
このファイルさえあれば、別のパソコンでも npm install(引数なし)や pip install -r requirements.txt の一発で、必要な部品をまとめて再インストールできます。チーム開発や環境の引っ越しの土台になる仕組みです。
環境まわりの言葉が曖昧な人は、開発環境とは も合わせて読むと、この「再現できる」ありがたみが実感できます。
つまずきやすいところ
command not found: npm(または pip):そもそも Node や Python 本体が入っていない/パスが通っていない状態です。パッケージマネージャは言語本体に付いてくるので、まず本体のインストールから。- 権限エラー(Permission denied):グローバルインストールで起きがち。安易に管理者権限で無理やり入れず、ローカルインストールやバージョン管理ツールの利用を検討します。
- 入れたのに使えない(ModuleNotFoundError など):入れた場所と実行している場所(環境)がズレているのが典型。Python でよく出るこの手のエラーは Pythonのエラー逆引き に、JavaScript 側は JavaScriptのエラー逆引き に整理してあります。
Become-Coder なら、インストールなしで先に「動かす」
ここまで読んで「環境構築、大変そう…」と感じたかもしれません。実は、プログラミングを学ぶ最初の段階では、パッケージマネージャは必須ではありません。まずは言語そのものの書き方に慣れるのが先です。
Become-Coder のレッスンは、ブラウザの中でコードがそのまま動きます。npm も pip もインストール不要・登録不要で、いますぐ書いて実行できます。
- Python を試す → print で画面に表示する
- JavaScript を試す → console.log で画面に表示する
言語の基本に慣れてから、実際のアプリ開発でライブラリが必要になったときに、この記事に戻って install すれば十分です。順番を逆にしないことが、挫折しないコツです。