Python, pipの基本的な使い方(install, update, uninstall)

Modified: | Tags: Python, pip

pipはPythonのパッケージ管理システム。Pythonの様々なパッケージ(ライブラリ)をインストール、アップデート、アンインストールするのに使う。

pipのインストール

python.orgの標準のインストーラーでPythonをインストールすると、pipも同時にインストールされる。

Usually, pip is automatically installed if you are:

公式ドキュメントにはensurepipget-pip.pyを使って個別にpipをインストールする方法も記載されている。

が、もしpipがインストールされていない場合、その古いシステムを使わなければならない強い理由がなければ、python.orgのインストーラーなどで新しくPythonの環境を整える方がミスが少なく簡単。

Macでは、HomebrewでPythonをインストールした場合もpipが同時にインストールされる。

なお、Anacondaで環境を準備した場合、パッケージ管理にはpipではなくcondaを使う。

pipとpip2, pip3

Python2とPython3が共存している環境では、pipコマンドのほかpip2pip3コマンドが使えるようになっている場合がある。

pip2はPython2で使用されるパッケージを管理するコマンドで、pip3はPython3で使用されるパッケージを管理するコマンド。pipはPython2かPython3のどちらかに割り当てられている。

例えばpipがPython2に対応している場合、pipでインストールしたパッケージはPython3では使えないので注意。

コマンドの使い方自体はpip, pip2, pip3すべて同じ。

後で説明するpip showコマンドで各パッケージがどこにインストールされたのかを確認できる。

パッケージのインストール: pip install

パッケージをインストールするにはpip installを使う。

PyPI(the Python Package Index)に登録されているパッケージは名前を指定するだけで最新版がインストールされる。

$ pip install <package-name>

複数パッケージを同時にインストールできる。

$ pip install <package-name1> <package-name2> <package-name3> ...

==を使って1.0.0などのバージョンを指定することも可能。

$ pip install <package-name>==<version>

設定ファイルrequirements.txtに従って一括でインストールする方法については以下の記事を参照。

ローカルやGitHubからインストール

最新版やバグフィックス版がまだPyPIに登録されていない場合は、ローカルのディレクトリやGitHubのレポジトリからインストールすることも可能。

ローカルからインストールしたい場合は、setup.pyが含まれているディレクトリのパスを指定する。

$ pip install path/to/dir

setup.pyが含まれているディレクトリが圧縮されたzipファイルやwhlファイルを指定してもインストール可能。

$ pip install path/to/zipfile.zip

Gitのレポジトリからもインストールできる。

$ pip install git+<repository-url>

例えば、GitHubからインストールする場合は以下のようになる。

$ pip install git+https://github.com/<user-name>/<repository-name>

末尾に@<branch-name>をつけるとブランチやタグを指定してインストール可能。例えば、Requestsのv2.30.0タグがついたバージョンは以下のようにインストールできる。

$ pip install git+https://github.com/requests/requests@v2.30.0

git+をつけたインストールは、git cloneしてからインストールするため、システムにgitがインストールされている必要がある。

GitHubではリリースページから各バージョンのリポジトリをzipでダウンロードできるようになっているので、zipのURLを直接指定してもよい。この場合はgitがインストールされていなくてもよい。

$ pip install https://github.com/requests/requests/archive/v2.30.0.zip

パッケージのアップデート: pip install --upgrade

インストール済みのパッケージを最新版にアップデートするには、pip install--upgradeまたは-Uオプションをつけて実行する。どちらでも同じ。

$ pip install --upgrade <package-name>
$ pip install -U <package-name>

pip自体のアップデート

pip自体もpipで管理されている。他のパッケージと同様に、以下のコマンドでpip自体をアップデートできる。

$ pip install --upgrade pip

pip2, pip3コマンドの場合は最初のpipのみpip2またはpip3に置き換える。

$ pip3 install --upgrade pip

パッケージのアンインストール: pip uninstall

インストール済みのパッケージをアンインストールするにはpip uninstall

$ pip uninstall <package-name>

複数パッケージを同時にアンインストールできる。

$ pip uninstall <package-name1> <package-name2> <package-name3> ...

デフォルトでは以下の例のように削除対象が表示された後にProceed (y/n)?と確認される。

$ pip uninstall pyflakes
Found existing installation: pyflakes 3.0.1
Uninstalling pyflakes-3.0.1:
  Would remove:
    /opt/homebrew/bin/pyflakes
    /opt/homebrew/lib/python3.11/site-packages/pyflakes-3.0.1.dist-info/*
    /opt/homebrew/lib/python3.11/site-packages/pyflakes/*
Proceed (y/n)?

yと入力するとアンインストールが実行される。

pip uninstallコマンドに--yesまたは-yオプションをつけると確認が省略される。

$ pip uninstall --yes <package-name>
$ pip uninstall -y <package-name>

インストール済みのパッケージの詳細確認: pip show

インストールされているパッケージの詳細を確認するにはpip showを使う。

$ pip show <package-name>

例えばpip自体もパッケージのひとつなので、以下のように詳細が確認できる。ライセンスや依存関係などが表示される。

$ pip show pip
Name: pip
Version: 23.2.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: /opt/homebrew/lib/python3.11/site-packages
Requires: 
Required-by: 

Locationが実際にパッケージがインストールされているファイルシステム上の場所(パス)。

例の環境では、pipコマンドはPython3用で、.../python3.11/site-packagesにパッケージをインストールしていることが分かる。

インストール済みのパッケージ一覧確認: pip list, pip freeze

インストール済みのパッケージ一覧はpip listで確認できる。

$ pip list
Package    Version
---------- -------
pip        23.2.1
setuptools 68.0.0
six        1.16.0
wheel      0.40.0

出力フォーマットを変えたり、最新版のパッケージ、最新版でないパッケージ、ほかのパッケージから依存されていないパッケージの一覧などを選択して出力することも可能。詳細は以下の記事を参照。

似たようなコマンドにpip freezeがある。

$ pip freeze
six==1.16.0

freezeではpip自体やsetuptools, wheelといったパッケージ管理のためのパッケージはリストアップされない。

freezeはある環境にインストールされたパッケージを別の環境で一括インストールする際に便利。以下の記事を参照。

依存関係のチェック: pip check

インストールされたパッケージの依存関係に問題ないかをpip checkで確認できる。

特に問題ない場合は以下のように表示される。

$ pip check
No broken requirements found.

依存するパッケージがインストールされていない場合や、インストールされていてもバージョンが古い場合はその旨が表示される。

以下は公式リファレンスの例。

$ pip check
pyramid 1.5.2 requires WebOb, which is not installed.

$ pip check
pyramid 1.5.2 has requirement WebOb>=1.3.1, but you have WebOb 0.8.

このようなメッセージが表示された場合は該当のパッケージをpip installでインストールするか、pip install -Uでアップデートする必要がある。

関連カテゴリー

関連記事