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 pip
instead 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」の違いを学ぶと、
環境管理のスキルが一気に上達しますよ!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。