pip・pip3・python -m pip・python3 -m pipの違いを解説!

Pythonでライブラリをインストールするときは、次のようにpipコマンドを使うことがよくあります。

pip install requests

しかし、Pythonについて調べていると、次のような書き方を目にすることもあります。

pip3 install requests
python -m pip install requests
python3 -m pip install requests

初めて見ると、

  • pippip3python -m pippython3 -m pipは何が違うの?

と疑問に思うこともあるでしょう。

この記事では、python -m pipとは何なのか、pippip3との違い、複数のPythonがインストールされている場合の使い分けについて、初心者向けにわかりやすく解説します。

「pip」はどのPythonを使ってインストールしているのか?

pipコマンドがどのPython環境に紐づいているのかは、次のコマンドで確認できます。

pip --version

例えば、次のように表示されたとします。

pip 26.2.1 from C:\Users\user01\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip (python 3.13)

この表示を見ると、Python313\Lib\site-packagesというパスと、(python 3.13)という情報があります。

そのため、このpipコマンドはPython 3.13のpipを使っていることが分かります。

その状態で、以下のコマンドを実行すると、Python 3.13の環境に対してrequestsをインストールします。

pip install requests

イメージとしては、次のようになります。

pip --version
        ↓
python 3.13

pip install requests
        ↓
Python 3.13の環境にrequestsをインストール

「python -m pip」はどのPythonを使ってインストールしているのか?

python -m pipがどのPython環境に対してpipを実行するのかは、次のコマンドで確認できます。

python --version

例えば、次のように表示されたとします。

Python 3.14.2

この場合、pythonコマンドではPython 3.14が起動することが分かります。

その状態で、以下のコマンドを実行すると、Python 3.14の環境に対してrequestsをインストールします。

python -m pip install requests

イメージとしては、次のようになります。

python --version
        ↓
python 3.14

python -m pip install requests
        ↓
Python 3.14の環境にrequestsをインストール

つまり、python -m pipでは、pythonコマンドで起動するPythonを使ってpipを実行し、requestsをインストールしています

「pip」と「python -m pip」の違い

ここまでの内容を整理すると、pippython -m pipでは、どこを基準にpipを実行するのかが異なります。

pip install requestsの場合は、pipコマンドとして登録されているpipを直接実行します。

pip install requests
        ↓
pipコマンドを実行
        ↓
そのpipに紐づいているPython環境にrequestsをインストール

一方、python -m pip install requestsでは、まずpythonコマンドで起動するPythonを指定し、そのPythonを使ってpipを実行します。

python -m pip install requests
   ↓
pythonコマンドで起動するPythonのpipモジュールを実行する
   ↓
そのPython環境にrequestsをインストール

つまり、簡単にいうと次の違いがあります。

コマンドどのPython環境にインストールされる?
pip install requestspipコマンドに紐づいているPython
pip --versionで確認できる)
python -m pip install requestspythonコマンドで起動するPython
python --versionで確認できる)

Pythonが1つしかインストールされていない環境では、どちらを実行しても同じPython環境にインストールされることが多いため、違いを意識することはあまりありません。

しかし、複数のPythonがインストールされている環境では、この違いが重要になります。

例えば、pippythonが別のPython環境を指していることもあります。

次のような環境を考えてみます。

pip --version
        ↓
Python 3.13

python --version
        ↓
Python 3.14

この場合、pipコマンドはPython 3.13に紐づいていますが、pythonコマンドではPython 3.14が起動します。

そのため、

pip install requests
        ↓
Python 3.13の環境にrequestsをインストール

python -m pip install requests
        ↓
Python 3.14の環境にrequestsをインストール

という違いが生まれます。つまり、同じパソコンで実行していても、pippython -m pipでは、ライブラリがインストールされるPython環境が異なる場合があります。

このような違いがあるため、複数のPythonがインストールされている環境では、python -m pipを使うことで、pythonコマンドで起動するPythonに対してpipを実行していることを明確にできます。

pip3とは?

環境によっては、pipではなくpip3というコマンドを見かけることがあります。

pip3 install requests

pip3は、主にPython 3用のpipであることを区別するために使われてきたコマンドです。以前はPython 2とPython 3が同じパソコンにインストールされていることがあり、pippip3を区別して使用する環境がありました。

例えば、

pip3 install requests

を実行すると、pip3コマンドとして登録されているpipを使ってrequestsをインストールします。

pip3コマンドがどのPython環境に紐づいているのかは、次のコマンドで確認できます。

pip3 --version

例えば、次のように表示されたとします。

pip 26.2.1 from C:\Users\user01\AppData\Local\Programs\Python\Python314\Lib\site-packages\pip (python 3.14)

この表示を見ると、Python314\Lib\site-packagesというパスと、(python 3.14)という情報があります。

そのため、このpip3コマンドはPython 3.14のpipを使っていることが分かります。

Python 2は2020年に公式サポートが終了しているため、現在ではPython 2とPython 3を区別する目的でpip3を使う必要性は以前より小さくなっています。ただし、macOSやLinuxなどでは環境によって現在でもpip3コマンドが用意されていることがあります。

python3 -m pipとは?

macOSやLinuxでは、Python 3を起動するときにpythonではなくpython3コマンドを使用する環境があります。

そのような環境では、

python3 -m pip install requests

という書き方を使用します。意味はpython -m pipと同じです。

python -m pip
    ↓
pythonコマンドで起動するPythonのpipモジュールを実行

python3 -m pip
    ↓
python3コマンドで起動するPythonのpipモジュールを実行

python3 -m pipがどのPython環境に対してpipを実行するのかは、次のコマンドで確認できます。

python3 --version

例えば、次のように表示されたとします。

Python 3.14.2

この場合、python3コマンドではPython 3.14が起動することが分かります。

その状態で、以下のコマンドを実行すると、Python 3.14の環境に対してrequestsをインストールします。

python3 -m pip install requests

イメージとしては、次のようになります。

python3 --version
        ↓
python 3.14

python3 -m pip install requests
        ↓
Python 3.14の環境にrequestsをインストール

つまり、python3 -m pipでは、python3コマンドで起動するPythonを使ってpipを実行し、requestsをインストールしています

pip・pip3・python -m pip・python3 -m pipの違い

まとめると、次のようになります。

コマンド意味
pip install requestspipコマンドとして登録されているpipを実行する
pip3 install requestspip3コマンドとして登録されているpipを実行する
python -m pip install requestspythonで起動するPythonのpipモジュールを実行する
python3 -m pip install requestspython3で起動するPythonのpipモジュールを実行する

結局どのコマンドを使えばよい?

ここまでpippip3python -m pippython3 -m pipの違いを紹介しました。

では、実際にはどのコマンドを使えばよいのでしょうか。

Pythonが1つだけインストールされていて、pipがそのPythonに紐づいていることが分かっている場合は、

pip install requests

でも問題ありません。

一方、

python -m pip install requests

と実行すると、pythonコマンドで起動するPythonに対してpipを実行できます。例えば、python --versionを実行してPython 3.14と表示される場合は、python -m pip install requestsによってPython 3.14の環境にrequestsがインストールされます。

また、macOSやLinuxで複数のPython 3がインストールされていて、python3.13python3.14というコマンドが用意されている環境では、Pythonのバージョンまで指定してpipを実行できます。

例えば、Python 3.13にrequestsをインストールする場合は、

python3.13 -m pip install requests

Python 3.14にrequestsをインストールする場合は、

python3.14 -m pip install requests

のように実行します。この場合は、それぞれPython 3.13、Python 3.14の環境にrequestsがインストールされます。

python3.13python3.14というコマンドが利用できるかどうかは環境によって異なります。

つまり、複数のPythonがインストールされている場合は、どのPythonにライブラリをインストールしたいのかを意識して、そのPythonを指定してpipを実行することがポイントです。

特にpython -m pippython3.14 -m pipのように実行すると、どのPythonの環境にインストールするのかがコマンドから分かりやすいため、複数のPythonを使い分ける環境では便利です。

スポンサーリンク