かゆい所に手が届く解説

Python初心者必見!「pip list」と「pip freeze」の違いをわかりやすく解説

Python初心者必見!「pip list」と「pip freeze」の違いをわかりやすく解説

Pythonを利用する際、ライブラリの管理はとても大切です。

特に、

  • どんなライブラリがインストールされているのか?
  • そのライブラリのバージョンは?

といった情報は、プロジェクトを進める上で非常に重要です。

この記事では、Pythonのパッケージ管理ツールであるpipにおいて、ライブラリのインストール状況を確認するpip listpip freezeについて、その違いと使用方法をわかりやすく解説していきます。

もしかしたら「pipって何?」という方もいらっしゃるかもしれませんが、pipの基本的な使い方から解説していますので安心して読み進めてください。

コマンドの実行環境

これから解説するコマンドを実行する場合、いくつか方法があります。

ご存知の方は飛ばしてください。

コマンドプロンプトって何?という方は、こちらの記事をご覧ください。

Pythonのパッケージ管理とは

Pythonには、ライブラリやツールを簡単にインストール・管理できるpipというツールがあります。

pip list
pip install パッケージ名

pipコマンドを使うことで、さまざまな機能を追加したり、プロジェクトを効率的に進めることができます。

「pip list」とは?

pip listは、現在のPython環境にインストールされているライブラリやツールのリストを表示するコマンドです。

pip list

このコマンドを実行すると、インストールされているパッケージの名前とバージョンが一覧で表示されます。

C:\Users>pip list
Package           Version
----------------- ---------
asgiref           3.6.0
bottle            0.12.23
cycler            0.11.0
Django            3.2.17
fonttools         4.38.0
joblib            1.2.0
kiwisolver        1.4.4
matplotlib        3.5.3
numpy             1.21.6
packaging         23.1
Pillow            9.5.0
pip               23.2.1
pyparsing         3.1.1
python-dateutil   2.8.2
pytz              2022.7.1
scikit-learn      1.0.2
scipy             1.7.3
setuptools        40.8.0
six               1.16.0
sklearn           0.0.post1
sqlparse          0.4.3
threadpoolctl     3.1.0
typing_extensions 4.4.0

実行結果には、ライブラリ名とそのバージョンが見やすく表示されます。

「pip freeze」とは?

一方のpip freezeについても、インストールされているパッケージの名前とバージョンを表示するコマンドですが、pip listとは少し表示形式が異なります。

pip freeze

このコマンドを実行すると、インストールされているパッケージの名前とバージョンが特定の形式で表示されます。

C:\Users>pip freeze
asgiref==3.6.0
bottle==0.12.23
cycler==0.11.0
Django==3.2.17
fonttools==4.38.0
joblib==1.2.0
kiwisolver==1.4.4
matplotlib==3.5.3
numpy==1.21.6
packaging==23.1
Pillow==9.5.0
pyparsing==3.1.1
python-dateutil==2.8.2
pytz==2022.7.1
scikit-learn==1.0.2
scipy==1.7.3
six==1.16.0
sklearn==0.0.post1
sqlparse==0.4.3
threadpoolctl==3.1.0
typing_extensions==4.4.0

この形式は、他の環境で同じパッケージを再現するためのrequirements.txtファイルを生成する際に使用されます。

「pip list」と「pip freeze」の主な違い

両者の違いを簡単に言うと、pip listは一般的な情報表示のために、pip freezeは他の環境での再現のために使用されます。

まとめると、

  • pip list
    インストールされているPythonのパッケージとそのバージョンを一覧表示
  • pip freeze
    インストールされているPythonのパッケージとその正確なバージョンを一覧表示し、出力形式が package-name==version-number となる形式

となります。

見た目や使用目的にいくつか違いがありますが、どちらもPythonのパッケージ管理には欠かせないコマンドです。

各コマンドの使い分け

Pythonを学ぶ上で、適切なコマンドを使い分けることは非常に重要です。

似たような目的のコマンドですが、それぞれの特徴と使い分けについてまとめます。

pip list の利用

pip listは日常的にインストールされているパッケージをチェックする際に利用します。

現在の状況を確認するには、基本的にこちらを利用するのが良いでしょう。

pip freeze の利用

pip freezeはプロジェクトを他の場所で再現する際に使用します。

pip freeze の出力形式が特に重要なのは、この形式が requirements.txt ファイルで使用されるためです。

requirements.txt ファイルは、Pythonプロジェクトで必要なパッケージとそのバージョンをリストアップするためのファイルです。

例えば、あるプロジェクトで特定のバージョンのパッケージが必要となる場合。

そのプロジェクトを他の環境や他の開発者と共有する際、どのパッケージ(バージョン)が必要かを明示的に示すことが必要です。

pip freeze を使うと、他の環境や他の開発者も同じバージョンのパッケージを簡単にインストールすることができます。

その際、以下の手順で requirements.txt ファイルを作成・使用します。

  1. 現在の環境のパッケージを pip freeze > requirements.txt というコマンドで requirements.txt に出力
  2. 作成された requirements.txt ファイルを他の環境や開発者に共有
  3. 共有された環境や他の開発者は、pip install -r requirements.txt というコマンドで requirements.txt にリストされているパッケージとそのバージョンを一括でインストールすることが可能
pip freeze > requirements.txt
pip install -r requirements.txt

上記のコマンドを実行する際、venvなどの仮想環境でテストしてください

このように、pip freeze のコマンドと requirements.txt ファイルを使用することで、

  • Pythonプロジェクトの依存関係を正確に再現し、
  • 他の環境でのトラブルを防ぐ

ということが可能です。

まとめ

今回は、Pythonのパッケージ管理ツールpipの中のpip listpip freezeについて、それぞれのコマンドの特徴や違いについて詳しく解説しました。

これらのコマンドは、Pythonを学ぶ上での基本的なツールとして、また実際のプロジェクトを進める際の助けとして、非常に役立つものです。

pip listで現在の環境にインストールされているパッケージを確認し、pip freezeでその情報を他の環境に持ち運ぶことができる。

このように、適切なコマンドを適切な場面で使用することで、Pythonの開発がよりスムーズに、効率的に進められます。

今後もPythonを中心としたプログラミングの情報をお届けします。

Pythonの演習はこちら ▶

以下のメルマガにご登録頂くと、不定期に配信をお届けします。

ぜひ購読してください!

それでは、ステキなPythonライフを!

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 最近ではPythonを用いたアプリ開発、ウェブアプリケーションの開発と運営に没頭。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です