pip listの使い方|インストール済みパッケージの確認・絞り込み・エラー対処

pip listの使い方|インストール済みパッケージの確認・絞り込み・エラー対処
pip listの使い方|インストール済みパッケージの確認・絞り込み・エラー対処
その他

Pythonでインストール済みのパッケージを確認するときは、pip listを使います。パッケージ名とバージョンを一覧表示できるため、環境の確認やエラー原因の切り分けに便利です。

ただし、PCに複数のPythonが入っていると、単にpip listを実行しただけでは、目的とは異なるPython環境の情報が表示されることがあります。そのため、基本的にはPythonを指定して実行する方法がおすすめです。

最初に試したいコマンド

python -m pip list

Windowsでは、次のコマンドも利用できます。

py -m pip list

macOSやLinuxでpythonが使えない場合は、次のように実行します。

python3 -m pip list

この記事では、pip listの基本的な使い方、便利なオプション、pip freezeとの違い、パッケージが表示されないときの対処法まで解説します。

pip listとは何か

pip listは、現在選択されているPython環境にインストール済みのパッケージを一覧表示するコマンドです。自分で直接インストールしたパッケージだけでなく、その動作に必要な依存パッケージも表示されます。

pip listの基本的な実行方法

コマンドプロンプト、PowerShell、ターミナルなどを開き、次のコマンドを実行します。

python -m pip list

WindowsでPythonランチャーを使用している場合は、次のコマンドでも確認できます。

py -m pip list

実行すると、次のような結果が表示されます。

Package    Version
---------- -------
numpy      2.2.1
pandas     2.2.3
pip        25.0
requests   2.32.3

Packageはパッケージ名、Versionは現在インストールされているバージョンです。表示されるパッケージは、基本的に名前順で並びます。

なぜ「python -m pip list」を使うのか

pip listだけでも一覧を表示できますが、PCに複数のPythonがあると、実行したpipとプログラムを動かしているPythonが一致しないことがあります。

python -m pip listと入力すると、先頭で指定したPythonに属するpipを使って一覧を表示できます。そのため、「インストールしたはずなのに読み込めない」といった環境の食い違いを防ぎやすくなります。

使用しているPythonとpipの場所を確認したい場合は、次のコマンドを実行してください。

python -c "import sys; print(sys.executable)"
python -m pip --version

両方の出力に表示されるパスを確認すると、どのPython環境を操作しているのか判断できます。

pip listに表示されるもの

pip listに表示されるのは、pipで管理できるインストール済みの配布パッケージです。Pythonの標準ライブラリは表示されません。

例えば、jsonpathlibなど、Pythonに最初から含まれている標準ライブラリはpipでインストールするものではないため、一覧には出てきません。

また、インストール時の名前と、Pythonコード内で読み込む名前が異なるパッケージもあります。

インストール時の名前 importで使う名前
Pillow PIL
scikit-learn sklearn
beautifulsoup4 bs4

目的の名前がpip listに見つからないときは、インストール名とimport名が同じとは限らない点にも注意してください。

pip listでよく使うオプション

pip listには、古いパッケージだけを表示したり、結果の形式を変更したりするオプションがあります。目的に応じて使い分けると、長い一覧から必要な情報を探しやすくなります。

コマンド 用途
python -m pip list インストール済みパッケージを一覧表示する
python -m pip list --outdated 更新可能なパッケージを表示する
python -m pip list --uptodate 最新状態のパッケージを表示する
python -m pip list --not-required ほかのパッケージから依存されていないものを表示する
python -m pip list --format=json JSON形式で表示する
python -m pip list --format=freeze 名前とバージョンを「==」でつないで表示する
python -m pip list --user ユーザー領域に入っているパッケージだけを表示する

更新可能なパッケージを調べる「–outdated」

インストール済みのパッケージに新しいバージョンがあるか調べるには、--outdatedを付けます。

python -m pip list --outdated

実行結果には、現在のバージョンと利用可能な新しいバージョンが表示されます。

Package   Version   Latest   Type
--------- --------- -------- -----
requests  2.31.0    2.32.3   wheel

特定のパッケージを更新する場合は、次のように実行します。

python -m pip install --upgrade requests

新しいバージョンが公開されていても、利用中のプログラムが対応しているとは限りません。特に開発中のプロジェクトでは、すべてを一括で更新せず、変更内容や依存関係を確認してから更新することが大切です。

最新状態のパッケージを表示する「–uptodate」

更新が不要なパッケージだけを確認するには、次のコマンドを使います。

python -m pip list --uptodate

目的のパッケージがこの一覧にあれば、少なくともpipが参照しているパッケージインデックス上では、安定版の最新版が入っていると判断できます。

直接導入した可能性が高いパッケージを探す「–not-required」

ほかのインストール済みパッケージから依存されていないパッケージを表示するには、次のコマンドを使います。

python -m pip list --not-required

自分が直接インストールした主要なパッケージを探す際の参考になります。ただし、「自分でインストールした履歴」を正確に表示する機能ではありません。依存関係の構造によっては、直接インストールしていないものが含まれることもあります。

表示形式を変える「–format」

pip listの出力形式は、--formatで変更できます。

通常の表形式で表示する場合は、次のコマンドです。

python -m pip list --format=columns

プログラムで処理しやすいJSON形式にする場合は、次のように実行します。

python -m pip list --format=json

パッケージ名とバージョンをパッケージ名==バージョンの形式で表示する場合は、次のコマンドを使います。

python -m pip list --format=freeze

ただし、pip list --format=freezepip freezeは完全に同じ動作ではありません。環境を別のPCで再現する目的では、後述するpip freezeを使用してください。

特定のパッケージだけを確認する

特定のパッケージがインストールされているか確認するだけなら、pip showが便利です。

python -m pip show pandas

インストールされていれば、バージョン、保存場所、依存パッケージなどが表示されます。何も表示されない場合は、そのPython環境には対象のパッケージが入っていない可能性があります。

pip listの結果から文字列を検索することもできます。Windowsではfindstrを使います。

python -m pip list | findstr /i pandas

macOSやLinuxではgrepを使います。

python3 -m pip list | grep -i pandas

一覧をファイルに保存する

現在の一覧を確認用のテキストファイルとして保存する場合は、出力のリダイレクトを使います。

python -m pip list > package-list.txt

package-list.txtには、画面に表示されるものと同じ一覧が保存されます。環境変更の前後でファイルを作成して比較すると、どのパッケージやバージョンが変わったか確認しやすくなります。

ただし、このファイルは確認用です。別環境へのインストールに使うrequirements.txtを作成するときは、pip freezeを利用します。

pip listとpip freezeの違い

pip listとpip freezeは、どちらもインストール済みパッケージを表示しますが、主な用途が異なります。

比較項目 pip list pip freeze
主な用途 現在の環境を人が確認する インストール内容をファイルに記録する
標準の表示形式 見やすい表形式 名前==バージョン形式
更新状況の確認 --outdatedを利用できる 利用できない
requirements.txtの作成 通常は使わない 適している

requirements.txtを作成する方法

現在の環境にインストールされているパッケージとバージョンをrequirements.txtへ保存するには、次のコマンドを実行します。

python -m pip freeze > requirements.txt

別の環境で同じ内容をインストールする場合は、次のコマンドを使います。

python -m pip install -r requirements.txt

pip freezeは、現在インストールされている内容を出力するコマンドです。依存関係を新しく計算したり、異なるOSやPythonバージョンでも完全に同じ動作を保証したりするロック機能ではありません。

環境を再現するときは、requirements.txtだけでなく、使用したPythonのバージョンやOSも記録しておくと安全です。

pip freezeで一部のパッケージが表示されない理由

pip freezeは、標準ではpipなど一部のパッケージ管理用ツールを除外することがあります。除外される対象は、Pythonやpipのバージョンによって異なります。

管理用ツールも含めて表示したい場合は、次のように--allを付けます。

python -m pip freeze --all

pip listには表示されるのにpip freezeには表示されないパッケージがある場合でも、必ずしも異常とは限りません。

pip listでパッケージが表示されないときの対処法

インストールしたはずのパッケージが一覧にない場合は、別のPython環境を確認している可能性があります。再インストールを繰り返す前に、使用中のPython、pip、仮想環境を順番に確認しましょう。

「pipが認識されない」と表示される場合

Windowsで「pipは内部コマンドまたは外部コマンドとして認識されていません」と表示されたり、macOSやLinuxで「command not found」と表示されたりする場合は、まず次のコマンドを試してください。

python -m pip --version

Windowsでは、こちらも試します。

py -m pip --version

macOSやLinuxでは、次の形で利用できることがあります。

python3 -m pip --version

これらが動く場合は、pip自体はインストールされています。今後はpipを単独で実行せず、python -m pipまたはpython3 -m pipを使えば操作できます。

「No module named pip」と表示される場合は、指定したPythonにpipが入っていません。標準的なPython環境では、次のコマンドでpipを導入または復旧できる場合があります。

python -m ensurepip --upgrade

Linuxでは、OSのパッケージ管理システムを使ってpipを導入する構成もあります。その場合は、利用しているディストリビューションの手順に従ってください。

インストール済みなのにModuleNotFoundErrorが出る場合

pip listにパッケージが表示されているのに、実行時にModuleNotFoundErrorが出る場合は、インストールに使ったPythonと、プログラムの実行に使っているPythonが異なる可能性があります。

まず、プログラムを動かしているPythonの場所を確認します。

python -c "import sys; print(sys.executable)"

続いて、pipが紐付いている場所を確認します。

python -m pip --version

目的のパッケージの保存場所も確認してください。

python -m pip show パッケージ名

仮想環境、IDE、Jupyter Notebookなどでは、ターミナルとは異なるPythonが選択されていることがあります。Visual Studio CodeやPyCharmを利用している場合は、プロジェクトで選択中のPythonインタープリターも確認しましょう。

仮想環境で一覧が変わる場合

仮想環境には、それぞれ独立したパッケージがインストールされます。そのため、仮想環境を有効化する前と後では、pip listの結果が異なるのが正常です。

仮想環境を作成する場合は、次のコマンドを使います。

python -m venv .venv

Windowsのコマンドプロンプトで有効化する場合は、次のように実行します。

.venv\Scripts\activate.bat

Windows PowerShellでは、次のコマンドです。

.venv\Scripts\Activate.ps1

macOSやLinuxでは、次のように有効化します。

source .venv/bin/activate

有効化したあとに一覧を確認します。

python -m pip list

仮想環境は必ずしも有効化する必要はありません。環境内のPythonを直接指定して確認することもできます。

.venv/bin/python -m pip list

Windowsでは次の形です。

.venv\Scripts\python.exe -m pip list

依存関係の競合を調べる

pip listではパッケージとバージョンを確認できますが、依存関係が正常かどうかまでは一覧だけでは判断できません。

必要なパッケージが不足していないか、要求されるバージョンと一致しているかを確認するには、pip checkを使います。

python -m pip check

問題がなければ、依存関係に破損がないことを示すメッセージが表示されます。問題がある場合は、不足しているパッケージや、条件を満たしていないバージョンが表示されます。

パッケージを更新または削除したあとにエラーが発生した場合は、pip listとpip checkを組み合わせると原因を切り分けやすくなります。

pip listを使ったパッケージの更新と削除

pip listで現在の状態を確認したあと、必要に応じてパッケージを更新または削除できます。ただし、依存パッケージを不用意に削除すると、別のプログラムが動かなくなる可能性があります。

パッケージを更新する

特定のパッケージを更新するコマンドは次のとおりです。

python -m pip install --upgrade パッケージ名

更新後は、バージョンを確認します。

python -m pip show パッケージ名

依存関係も確認しておくと安心です。

python -m pip check

特定のバージョンをインストールする

使用中のプログラムが最新版に対応していない場合は、バージョンを指定してインストールできます。

python -m pip install "パッケージ名==バージョン番号"

例えば、requestsの特定バージョンを指定する場合は次の形です。

python -m pip install "requests==2.32.3"

不要なパッケージを削除する

パッケージを削除するには、次のコマンドを使います。

python -m pip uninstall パッケージ名

pip listには依存パッケージも含まれているため、名前に覚えがないという理由だけで削除するのは避けましょう。不要になったプロジェクトの環境を整理したい場合は、個別に大量のパッケージを削除するより、仮想環境を削除して作り直す方が安全なこともあります。

pip listに関するよくある質問

pip listを使い始めたときに迷いやすい点をまとめます。表示内容に違和感がある場合は、操作対象となっているPython環境を確認することが重要です。

pip listが空に近いのは異常ですか?

作成したばかりの仮想環境では、pipなど最低限のパッケージしか表示されないことがあります。これは正常です。

以前インストールしたパッケージが見つからない場合は、別の仮想環境や別バージョンのPythonを選択していないか確認してください。

自分でインストールしたパッケージだけを表示できますか?

インストール履歴を厳密に判定する機能はありませんが、次のコマンドで、ほかのパッケージから依存されていないものを確認できます。

python -m pip list --not-required

主要なパッケージを探す手掛かりにはなりますが、表示結果がすべて自分で直接インストールしたものとは限りません。

pip listだけで環境をバックアップできますか?

pip listの保存結果は、確認や比較には利用できますが、環境を再構築するファイルには向いていません。インストール可能な形式で記録する場合は、次のコマンドを使います。

python -m pip freeze > requirements.txt

ただし、PythonのバージョンやOSが異なると、同じrequirements.txtでもインストールできない場合があります。環境情報もあわせて残しておきましょう。

pip listの結果はPythonごとに異なりますか?

異なります。Pythonのバージョン、仮想環境、ユーザー領域などによって、参照するインストール先が変わります。

どの環境を確認しているか分からない場合は、次の2つを実行してください。

python -c "import sys; print(sys.executable)"
python -m pip --version

pip listの使い方まとめ

まとめ
まとめ

pip listは、現在のPython環境にインストールされているパッケージとバージョンを確認するためのコマンドです。単にpip listと入力するより、操作するPythonを明確にできるpython -m pip listの使用がおすすめです。

よく使うコマンド

python -m pip list
python -m pip list --outdated
python -m pip list --not-required
python -m pip show パッケージ名
python -m pip check
python -m pip freeze > requirements.txt

パッケージが表示されない場合やModuleNotFoundErrorが発生する場合は、Pythonとpipの参照先、仮想環境、インストール名とimport名の違いを確認してください。pip listで現在の状態を把握し、pip showやpip checkを組み合わせることで、Python環境のトラブルを効率よく解決できます。

タイトルとURLをコピーしました