Pythonを利用する際、ライブラリの管理はとても大切です。
特に、
- どんなライブラリがインストールされているのか?
- そのライブラリのバージョンは?
といった情報は、プロジェクトを進める上で非常に重要です。
この記事では、Pythonのパッケージ管理ツールであるpip
において、ライブラリのインストール状況を確認するpip list
とpip freeze
について、その違いと使用方法をわかりやすく解説していきます。
コマンドの実行環境
これから解説するコマンドを実行する場合、いくつか方法があります。
ご存知の方は飛ばしてください。
コマンドプロンプトって何?という方は、こちらの記事をご覧ください。
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
ファイルを作成・使用します。
- 現在の環境のパッケージを
pip freeze > requirements.txt
というコマンドでrequirements.txt
に出力 - 作成された
requirements.txt
ファイルを他の環境や開発者に共有 - 共有された環境や他の開発者は、
pip install -r requirements.txt
というコマンドでrequirements.txt
にリストされているパッケージとそのバージョンを一括でインストールすることが可能
pip freeze > requirements.txt
pip install -r requirements.txt
このように、pip freeze
のコマンドと requirements.txt
ファイルを使用することで、
- Pythonプロジェクトの依存関係を正確に再現し、
- 他の環境でのトラブルを防ぐ
ということが可能です。
まとめ
今回は、Pythonのパッケージ管理ツールpip
の中のpip list
とpip freeze
について、それぞれのコマンドの特徴や違いについて詳しく解説しました。
これらのコマンドは、Pythonを学ぶ上での基本的なツールとして、また実際のプロジェクトを進める際の助けとして、非常に役立つものです。
pip list
で現在の環境にインストールされているパッケージを確認し、pip freeze
でその情報を他の環境に持ち運ぶことができる。
このように、適切なコマンドを適切な場面で使用することで、Pythonの開発がよりスムーズに、効率的に進められます。
今後もPythonを中心としたプログラミングの情報をお届けします。
以下のメルマガにご登録頂くと、不定期に配信をお届けします。
ぜひ購読してください!
それでは、ステキなPythonライフを!