Pythonでライブラリをインストールするときは、次のようにpipコマンドを使うことがよくあります。
pip install requestsしかし、Pythonについて調べていると、次のような書き方を目にすることもあります。
pip3 install requests
python -m pip install requests
python3 -m pip install requests初めて見ると、
pipとpip3とpython -m pipとpython3 -m pipは何が違うの?
と疑問に思うこともあるでしょう。
この記事では、python -m pipとは何なのか、pip・pip3との違い、複数の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」の違い
ここまでの内容を整理すると、pipとpython -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 requests | pipコマンドに紐づいているPython( pip --versionで確認できる) |
python -m pip install requests | pythonコマンドで起動するPython( python --versionで確認できる) |
Pythonが1つしかインストールされていない環境では、どちらを実行しても同じPython環境にインストールされることが多いため、違いを意識することはあまりありません。
しかし、複数のPythonがインストールされている環境では、この違いが重要になります。
例えば、pipとpythonが別の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をインストールという違いが生まれます。つまり、同じパソコンで実行していても、pipとpython -m pipでは、ライブラリがインストールされるPython環境が異なる場合があります。
このような違いがあるため、複数のPythonがインストールされている環境では、python -m pipを使うことで、pythonコマンドで起動するPythonに対してpipを実行していることを明確にできます。
pip3とは?
環境によっては、pipではなくpip3というコマンドを見かけることがあります。
pip3 install requestspip3は、主にPython 3用のpipであることを区別するために使われてきたコマンドです。以前はPython 2とPython 3が同じパソコンにインストールされていることがあり、pipとpip3を区別して使用する環境がありました。
例えば、
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 requests | pipコマンドとして登録されているpipを実行する |
pip3 install requests | pip3コマンドとして登録されているpipを実行する |
python -m pip install requests | pythonで起動するPythonのpipモジュールを実行する |
python3 -m pip install requests | python3で起動するPythonのpipモジュールを実行する |
結局どのコマンドを使えばよい?
ここまでpip・pip3・python -m pip・python3 -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.13やpython3.14というコマンドが用意されている環境では、Pythonのバージョンまで指定してpipを実行できます。
例えば、Python 3.13にrequestsをインストールする場合は、
python3.13 -m pip install requestsPython 3.14にrequestsをインストールする場合は、
python3.14 -m pip install requestsのように実行します。この場合は、それぞれPython 3.13、Python 3.14の環境にrequestsがインストールされます。
python3.13やpython3.14というコマンドが利用できるかどうかは環境によって異なります。
つまり、複数のPythonがインストールされている場合は、どのPythonにライブラリをインストールしたいのかを意識して、そのPythonを指定してpipを実行することがポイントです。
特にpython -m pipやpython3.14 -m pipのように実行すると、どのPythonの環境にインストールするのかがコマンドから分かりやすいため、複数のPythonを使い分ける環境では便利です。