Python, pipの基本的な使い方(install, update, uninstall)
pipはPythonのパッケージ管理システム。Pythonの様々なパッケージ(ライブラリ)をインストール、アップデート、アンインストールするのに使う。
pipのインストール
python.orgの標準のインストーラーでPythonをインストールすると、pipも同時にインストールされる。
Usually, pip is automatically installed if you are:
- working in a virtual environment
- using Python downloaded from python.org
- using Python that has not been modified by a redistributor to remove ensurepip
Installation - pip documentation v24.0
公式ドキュメントにはensurepip
やget-pip.py
を使って個別にpipをインストールする方法も記載されている。
が、もしpipがインストールされていない場合、その古いシステムを使わなければならない強い理由がなければ、python.orgのインストーラーなどで新しくPythonの環境を整える方がミスが少なく簡単。
Macでは、HomebrewでPythonをインストールした場合もpipが同時にインストールされる。
なお、Anacondaで環境を準備した場合、パッケージ管理にはpipではなくcondaを使う。
pipとpip2, pip3
Python2とPython3が共存している環境では、pip
コマンドのほかpip2
やpip3
コマンドが使えるようになっている場合がある。
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
でアップデートする必要がある。