Pythonは標準ライブラリ以外にも、数多くのサードパーティ製のパッケージがあり、PyPI(ぱいぴーあい)というリポジトリにて公開されています。
Pythonでサードパーティ製パッケージをインストールするには、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の仮想環境が有効になっていることを前提に説明します。
仮想環境について詳しくない方は、こちらの記事をご参照ください。
python-onayami.com
パッケージのインストール
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