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 installpython -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 pip instead of running pip directly.”

(訳:現在のPythonインタプリタに対応するpipを確実に使うために、pipを直接実行するのではなく、python -m pipを使用してください。)


7. まとめ

比較項目pip installpython -m pip install
実行対象不明(PATHに依存)実行中のpythonに紐づくpip
安全性低い(環境ずれが起こる)高い(確実に一致)
おすすめ度★★☆☆☆★★★★★

8. 今後の学習の指針

・仮想環境を使うときは、常に「python -m pip install」でインストールする習慣をつけること。
which pythonwhere pythonで、どのPythonが実行されているか確認するクセを持つこと。
・pipのバージョンや環境を確認したいときは

python -m pip --version

で確認してみましょう。


次のステップでは、「pip list」「pip show」「pip freeze」の違いを学ぶと、
環境管理のスキルが一気に上達しますよ!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。