Python, pipの基本的な使い方(install, update, uninstall)
pipはPythonのパッケージ管理システム。Pythonのパッケージ(ライブラリ)をインストール、アップデート、アンインストールするのに使う。
macOSのターミナル、WindowsのコマンドプロンプトやPower Shellでコマンドとして使う。
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 v25.0.1
公式ドキュメントには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>
例えば、Requestsは以下のようにインストールできる。
$ pip install requests
スペースで区切って指定すると、複数パッケージを同時にインストールできる。
$ 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でアップデートする必要がある。