pip install と python -m pip install の違いを新人エンジニアにもわかりやすく解説!
こんにちは。ゆうせいです。
前回は「pip」と「!pip」の違いを紹介しましたね。
今回はさらに一歩進んで、「pip install」と「python -m pip install」の違いを解説します。
この2つ、見た目はそっくりですが、実は動作の仕組みが全然違うんです。
「どっちを使っても同じでしょ?」と思っていませんか?
実は、その考えが思わぬトラブルの原因になることもあります。
1. まず「pip install」とは?
「pip install パッケージ名」は、最もよく使われるPythonパッケージのインストール方法です。
たとえば次のように入力します。
pip install requests
これで、HTTP通信を簡単に扱える「requests」ライブラリがインストールされます。
ただし、ここでのポイントは「pip」というコマンドがどのPython環境に紐づいているかは保証されないということです。
パソコンの中には複数のPythonがインストールされている場合が多く、
- システム全体のPython
- 仮想環境(venvやcondaなど)
- Jupyter NotebookのPython
などがそれぞれ存在します。
そのため、pipコマンドを単独で使うと、意図しない環境にインストールされることがあるのです。
2. 「python -m pip install」とは?
「python -m pip install」は、より確実で安全な方法です。
python -m pip install requests
この書き方は、「今このコマンドで使っているpythonに付属しているpipを使ってね!」という意味になります。
つまり、実行しているPython環境とpipの整合性が取れるんです。
3. 仕組みの違いをイメージで理解しよう
たとえばあなたのパソコンに以下のような環境があったとします。
| 環境 | Pythonのパス | pipのパス |
|---|---|---|
| システム全体 | /usr/bin/python3 | /usr/bin/pip3 |
| 仮想環境(venv) | /home/user/project/venv/bin/python | /home/user/project/venv/bin/pip |
もし仮想環境をアクティベートせずにpip install requestsを実行すると、
システム全体のPythonにインストールされてしまう可能性があります。
一方で、
python -m pip install requests
を実行すれば、
今そのシェルで動いている「python」に紐づいたpipが必ず使われるため、正しい環境にインストールされるのです。
4. よくあるトラブルと解決策
よくあるのが次のようなトラブルです。
pip install numpy
import numpy
# ModuleNotFoundError: No module named 'numpy'
この場合、pipでインストールされた場所と、実際にimportしているPythonの環境が違っていることがほとんどです。
解決策は簡単。以下のように実行してください。
python -m pip install numpy
これで「今使っているPython」に正しくインストールされるので、importできるようになります。
5. 「python -m pip」を使うメリット・デメリット
| 項目 | pip install | python -m pip install |
|---|---|---|
| コマンドの短さ | ◎(短くて簡単) | △(少し長い) |
| 環境の確実性 | △(誤動作の可能性あり) | ◎(確実に同じ環境にインストール) |
| 初心者の安全性 | △ | ◎ |
| 推奨度 | 中 | 高(公式推奨) |
6. 公式ドキュメントの立場
実は、Pythonの公式ドキュメントでも「python -m pip install」を推奨しています。
理由は、「環境を間違える可能性が少なく、確実に動作するから」です。
たとえば、以下のように書かれています。
“To ensure that you are using the pip associated with the current Python interpreter, use
python -m pipinstead of running pip directly.”
(訳:現在のPythonインタプリタに対応するpipを確実に使うために、pipを直接実行するのではなく、python -m pipを使用してください。)
7. まとめ
| 比較項目 | pip install | python -m pip install |
|---|---|---|
| 実行対象 | 不明(PATHに依存) | 実行中のpythonに紐づくpip |
| 安全性 | 低い(環境ずれが起こる) | 高い(確実に一致) |
| おすすめ度 | ★★☆☆☆ | ★★★★★ |
8. 今後の学習の指針
・仮想環境を使うときは、常に「python -m pip install」でインストールする習慣をつけること。
・which pythonやwhere pythonで、どのPythonが実行されているか確認するクセを持つこと。
・pipのバージョンや環境を確認したいときは
python -m pip --version
で確認してみましょう。
次のステップでは、「pip list」「pip show」「pip freeze」の違いを学ぶと、
環境管理のスキルが一気に上達しますよ!