Pythonは標準ライブラリ以外にも、数多くのサードパーティ製のパッケージがあり、PyPI(ぱいぴーあい)というリポジトリにて公開されています。
Pythonでサードパーティ製パッケージをインストールするには、pip
というツールを使います。
今回はpip
の基本的な使い方を解説しましょう。
- pipのインストール
- pipを使うときの注意点
- パッケージのインストール
- インストールしたパッケージの確認
- 古いパッケージの確認
- パッケージのアップグレード
- 複数の環境間でパッケージのインストール状態を統一する
- パッケージのアンインストール
- まとめ
pipのインストール
pip
はPythonをインストールすれば同時にインストールされるので、すぐに使えます*1。
もしインストールされていない場合は、以下のようにensurepip
モジュールを使うことでpip
をインストールできます。
python -m ensurepip
なお、Debian/Ubuntuに標準でインストールされているPythonにはensurepip
モジュールが存在しません。そのため、代わりにapt
コマンドでpython3-pip
というパッケージをインストールしてください。
sudo apt install -y python3-pip
pipを使うときの注意点
pip
はデフォルトではシステム全体で使える領域にパッケージをインストールしてしまいます。
各プロジェクト毎に必要なパッケージはそれぞれ異なるので、システム全体にインストールするのはお勧めしません。
パッケージをインストールする場合は、基本的に仮想環境を使うのがよいでしょう。
以降は、Pythonの仮想環境が有効になっていることを前提に説明します。
仮想環境について詳しくない方は、こちらの記事をご参照ください。
パッケージのインストール
PyPIからパッケージをインストールするには、install
コマンドを使います。
pip install <パッケージ名>
指定した「パッケージ名」がPyPIに公開されていれば、そのパッケージがインストールされます。
試しにWebフレームワークであるDjangoをインストールしてみます。
(venv) $ pip install Django Collecting Django Downloading Django-4.1-py3-none-any.whl (8.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 27.8 MB/s eta 0:00:00 Collecting sqlparse>=0.2.2 Downloading sqlparse-0.4.2-py3-none-any.whl (42 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.3/42.3 kB 52.8 MB/s eta 0:00:00 Collecting asgiref<4,>=3.5.2 Downloading asgiref-3.5.2-py3-none-any.whl (22 kB) Installing collected packages: sqlparse, asgiref, Django Successfully installed Django-4.1 asgiref-3.5.2 sqlparse-0.4.2
この記事を執筆した時点で最新のDjango 4.1がインストールされました。また、依存パッケージがあれば合わせてインストールされます。
バージョンを指定してインストール
install
コマンドは、デフォルトではそのパッケージの最新版をインストールします。
しかし、バージョンを指定したいこともあるでしょう。その場合は、以下のようにバージョンを指定してインストールできます。
pip install <パッケージ名>==<バージョン>
試しにDjango 4.0をインストールしてみます。
(venv) $ pip install Django==4.0 Collecting Django==4.0 Using cached Django-4.0-py3-none-any.whl (8.0 MB) Requirement already satisfied: sqlparse>=0.2.2 in ./venv/lib/python3.10/site-packages (from Django==4.0) (0.4.2) Requirement already satisfied: asgiref<4,>=3.4.1 in ./venv/lib/python3.10/site-packages (from Django==4.0) (3.5.2) Installing collected packages: Django Attempting uninstall: Django Found existing installation: Django 4.1 Uninstalling Django-4.1: Successfully uninstalled Django-4.1 Successfully installed Django-4.0
Djangoのバージョンが4.0にダウングレードされました。
インストールしたパッケージの確認
インストールしたパッケージを確認するには、list
コマンドを使います。
pip list
現在インストールされているパッケージを確認してみましょう。
(venv) $ pip list $ pip list Package Version ---------- ------- asgiref 3.5.2 Django 4.0 pip 22.2.2 setuptools 65.0.2 sqlparse 0.4.2
インストールしたパッケージと、それぞれのバージョンが表示されました。
先ほどインストールしたDjango 4.0が確認できます。
なお、asgiref
とsqlparse
はDjango
の依存パッケージです。また、pip
とsetuptools
はデフォルトでインストールされています。
古いパッケージの確認
開発を続けていると、パッケージ側のバージョンが上がり、プロジェクトで使用しているパッケージが古くなることがあります。
どのパッケージが古くなっているかを確認したい場合は、以下のコマンドを使います(もしくは pip list --outdated
)。
pip list -o
実際に使ってみましょう。
(venv) $ pip list -o Package Version Latest Type ------- ------- ------ ----- Django 4.0 4.1 wheel
先ほどDjangoを4.0にダウングレードしたので、最新版(Latest)であるDjango 4.1の存在が確認できます。
パッケージのアップグレード
インストール済みのパッケージを最新バージョンにするには以下のコマンドです(もしくは pip install --upgrade <パッケージ名>
)。
pip install -U <パッケージ名>
ダウングレードしたDjangoを再び最新バージョンにしてみましょう。
(venv) $ pip install -U Django Requirement already satisfied: Django in ./venv/lib/python3.10/site-packages (4.0) Collecting Django Using cached Django-4.1-py3-none-any.whl (8.1 MB) Requirement already satisfied: sqlparse>=0.2.2 in ./venv/lib/python3.10/site-packages (from Django) (0.4.2) Requirement already satisfied: asgiref<4,>=3.5.2 in ./venv/lib/python3.10/site-packages (from Django) (3.5.2) Installing collected packages: Django Attempting uninstall: Django Found existing installation: Django 4.0 Uninstalling Django-4.0: Successfully uninstalled Django-4.0 Successfully installed Django-4.1
執筆時点での最新バージョン(4.1)に更新されました。
複数の環境間でパッケージのインストール状態を統一する
以下のコマンドで、現在インストールしているパッケージを、インストール可能なフォーマットで出力できます。
pip freeze
実際に使ってみましょう。
(venv) $ pip freeze asgiref==3.5.2 Django==4.1 sqlparse==0.4.2
インストール済みのパッケージとバージョンが、インストール可能な形式で一覧表示されました。
これを保存して共有すれば、複数の環境間でパッケージのインストール状態を統一するのに便利です。
保存するファイル名は任意ですが、「requirements.txt」という名前がよく使われます。
(vevn) $ pip freeze > requirements.txt
保存した「requirements.txt」を使って、一括でパッケージをインストールするには以下のようにします。
(vevn) $ pip install -r requirements.txt
パッケージのアンインストール
最後にパッケージをアンインストールする方法です。以下のコマンドでパッケージをアンインストールできます。
pip uninstall <パッケージ名>
Djangoをアンインストールしてみます。途中でアンインストールするか確認されるので、「Y」を入力すればアンインストールできます。
(venv) $ pip uninstall Django Found existing installation: Django 4.1 Uninstalling Django-4.1: Would remove: /Users/test/blog/venv/bin/django-admin /Users/test/blog/venv/lib/python3.10/site-packages/Django-4.1.dist-info/* /Users/test/blog/venv/lib/python3.10/site-packages/django/* Proceed (Y/n)? Y Successfully uninstalled Django-4.1
Djangoがアンインストールされました。
ただし、以下の通りDjangoインストール時に合わせてインストールされた依存パッケージはアンインストールされていないので、注意しましょう。
(venv) $ pip list Package Version ---------- ------- asgiref 3.5.2 pip 22.2.2 setuptools 65.0.2 sqlparse 0.4.2
まとめ
pip
には他にも機能がありますが、よく使う基本的なコマンドを紹介しました。
最後に今回紹介したコマンドをまとめます。
# パッケージのインストール pip install <パッケージ名> # バージョンを指定してパッケージのインストール pip install <パッケージ名>==<バージョン> # パッケージのバージョンアップ pip install -U <パッケージ名> # パッケージのアンインストール pip uninstall <パッケージ名> # インストール済みのパッケージの確認 pip list # 古いパッケージの確認 pip list -o # インストール済みのパッケージをrequirements.txtに保存 pip freeze > requirements.txt # requirements.txtを使ってパッケージをインストール pip install -r requirements.txt