pip list・pip show・pip freeze の違いを新人エンジニアにもわかりやすく解説!

こんにちは。ゆうせいです。

Pythonで開発をしていると、だんだん環境の中にいろいろなライブラリが増えてきますよね。
でも、ふとした瞬間にこう思いませんか?

「今この環境に何が入ってるんだろう?」
「どのバージョンのライブラリを使ってるんだっけ?」

そんなときに役立つのが、pip listpip showpip freeze の3つです。
似ているようで目的が違うので、初心者のうちにしっかり使い分けを理解しておきましょう!


1. pip list:インストールされているパッケージの一覧を表示

まずは一番よく使うpip listです。

pip list

これを実行すると、現在のPython環境に入っているすべてのパッケージとそのバージョンが一覧で表示されます。

出力例はこんな感じです。

Package    Version
---------- -------
numpy      1.26.2
pandas     2.1.1
requests   2.31.0

つまり、今この環境にどんなライブラリが入っているかをざっくり確認するコマンドです。

プロジェクトで使っているライブラリが正しいかをチェックしたり、
他の環境と比べるときにも便利です。


2. pip show:特定のパッケージの詳細情報を確認

次はpip showです。

pip show requests

このコマンドは、特定のパッケージに関する詳しい情報を表示します。

出力の例を見てみましょう。

Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Location: /usr/local/lib/python3.11/site-packages
Requires: certifi, charset-normalizer, idna, urllib3

ここで重要なのは「Location」と「Requires」の2つです。

  • Location … どのフォルダ(どの環境)にインストールされているか
  • Requires … 依存しているパッケージ

たとえば、「requests」がどのPython環境に入っているかを確認したいとき、
このコマンドを使えば確実にわかります。


3. pip freeze:現在の環境を「再現」するための一覧

さて、3つ目のpip freezeはちょっと特別です。

pip freeze

を実行すると、出力はこんなふうになります。

numpy==1.26.2
pandas==2.1.1
requests==2.31.0

pip listとの違いは、フォーマットが「requirements.txt」用になっているという点です。

つまり、この出力をそのままファイルに保存しておくと、
他の人がまったく同じ環境を再現できるようになります!

たとえばこうです。

pip freeze > requirements.txt

これで「requirements.txt」というファイルが作成されます。
他の人は次のコマンドで同じ環境を再現できます。

pip install -r requirements.txt

これがいわゆる「環境の共有」です。


4. 3つのコマンドの違いを整理してみよう

コマンド主な用途出力内容よく使う場面
pip listすべてのパッケージを確認一覧(見やすい)今の環境をざっと確認
pip show特定パッケージの詳細名前・バージョン・場所など特定ライブラリの情報を調べたいとき
pip freeze環境を再現・共有requirements.txt形式環境を他人と共有・再現

5. 例えでイメージしてみよう

  • pip list … 冷蔵庫の中をパッと開いて「どんな食材があるか」見る感じ
  • pip show … 特定の食材を手に取って「賞味期限・原産地・成分表」を調べる感じ
  • pip freeze … 冷蔵庫の中の中身リストを紙に書いて、「同じ買い物ができるように」する感じ

こう考えると、それぞれの役割がスッと頭に入りますね!


6. 注意点:環境によって結果が違う!

Pythonは仮想環境ごとに独立してパッケージを管理します。
つまり、同じパソコンでも「pip list」の結果が環境によって違うんです。

確認するには以下のコマンドを使ってみましょう。

which python
python -m pip list

これで、今どのPython環境を使っているのかと、その環境のパッケージ一覧が確認できます。


7. まとめ

コマンド内容備考
pip list現在インストール済みのパッケージを一覧表示見やすい
pip show特定のパッケージの詳細を確認依存関係や場所がわかる
pip freeze環境を再現するための出力を作成requirements.txt用

8. 今後の学習の指針

・まずは「pip list」と「pip show」で、自分のPython環境をよく観察してみよう。
・開発プロジェクトでは、pip freeze > requirements.txt を定期的に実行しておくこと。
・次のステップでは、「仮想環境(venv)」を学んで、
 「プロジェクトごとに独立したパッケージ管理」ができるようになりましょう!

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

投稿者プロフィール

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