Pythonのパッケージ管理システムpipの使い方

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

pip — pip 18.1 documentation pypa/pip: The PyPA recommended tool for installing Python packages

ここでは以下の内容について説明します。

pipのインストール pipとpip2, pip3 インストール済みのパッケージの詳細確認: pip show インストール済みのパッケージ一覧確認: pip list, pip freeze パッケージのインストール: pip install ローカルやGitHubからインストール パッケージのアップデート: pip install --upgrade pip自体のアップデート パッケージのアンインストール: pip uninstall 依存関係のチェック: pip check

pipのインストール

python.orgの標準のインストーラーでPythonをインストールした場合、Python2系では2.7.9から、Python3系では3.4から、pipも同時にインストールされるようになっています。

pip is already installed if you are using Python 2 >=2.7.9 or Python 3 >=3.4 downloaded from python.org or if you are working in a Virtual Environment created by virtualenv or pyvenv. Just make sure to upgrade pip. Installation — pip 18.1 documentation

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

Installation - Installing with get-pip.py — pip 18.1 documentation

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

Download Python | Python.org

Macの場合、デフォルトでPython2.7がインストールされているがpipは付属していません。HomebrewでPythonをインストールするとpipも同時にインストールされます。2018年10月10日現在、brew install pythonでPython3がインストールされるようになっています。

Homebrew - macOS 用パッケージマネージャー

なお、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 show

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

pip show — pip 18.1 documentation

$ pip show <package-name>

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

$ pip show pip
Name: pip
Version: 18.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: [https://pip.pypa.io/](https://pip.pypa.io/)
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /usr/local/lib/python2.7/site-packages
Requires:
Required-by:

Locationが実際にパッケージがインストールされているファイルシステム上の場所(パス)。 例の環境ではpip3コマンドも使えるようになっており、pip3 showでは以下の結果となります。

$ pip3 show pip
Name: pip
Version: 18.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: [https://pip.pypa.io/](https://pip.pypa.io/)
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /usr/local/lib/python3.7/site-packages
Requires:
Required-by:

この結果から、pipコマンドはPython2用の.../python2.7/site-packagesにパッケージをインストールして、pip3コマンドはPython3用の.../python3.7/site-packagesにパッケージをインストールしていることが分かる。 なお、これはあくまでも例の環境での結果。pipがPython3用のコマンドになっている場合もあるので気をつけてください。

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

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

pip list — pip 18.1 documentation

$ pip list
Package    Version---------- -------
future     0.16.0
pip        18.1
setuptools 39.2.0
six        1.11.0
wheel      0.31.1

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

似たようなコマンドにpip freezeがあります。

pip freeze — pip 18.1 documentation

$ pip freeze
future==0.16.0
six==1.11.0

freezeではpip自体やsetuptools, wheelといったパッケージ管理のためのパッケージはリストアップされません。 freezeはある環境にインストールされたパッケージを別の環境で一括インストールする際に便利です。

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

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

pip install — pip 18.1 documentation

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

PyPI – the Python Package Index · PyPI

$ pip install <package-name>

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

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

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

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

設定ファイルrequirements.txtに従って一括でインストールする方法については

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

PyPIに登録されているものは上述のように名前だけでインストールできます。 最新版やバグフィックスされたものがまだ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>

末尾に@をつけるとブランチやタグを指定してインストールできます。 具体例として、Requestsのv2.15.0タグがついたバージョンは以下のようにインストールできます。

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

git+をつけたインストールは、git cloneしてからインストールするため、システムにgitがインストールされている必要があります。 GitHubではリリースページから各バージョンのリポジトリをzipでダウンロードできるようになっているので、zipのURLを直接指定しても問題ありません。この場合はgitがインストールされていなくても問題ありません。

Releases · requests/requests

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

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

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

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

pip自体のアップデート

pip自体もpipで管理されています。 pipが最新版でない場合はpipコマンド実行時に以下のようなメッセージが表示されます。 You are using pip version 18.0, however version 18.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command.

メッセージにあるとおり、以下のコマンドでpip自体をアップデートできます。

$ pip install --upgrade pip

pip2, pip3コマンドの場合は最初のpipのみpip2またはpip3に置き換えれば問題ありません。

$ pip3 install --upgrade pip

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

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

pip uninstall — pip 18.1 documentation

$ pip uninstall <package-name>

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

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

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

$ pip uninstall pyflakes
Uninstalling pyflakes-2.0.0:
  - Would remove:
    - /usr/local/bin/pyflakes
    - /usr/local/lib/python2.7/site-packages/pyflakes-2.0.0.dist-info/*
    - /usr/local/lib/python2.7/site-packages/pyflakes/*
Proceed (y/n)?

yと入力するとアンインストールが実行されます。 pip uninstallコマンドに--yesまたは-yオプションをつけると確認が省略されます。

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

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

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

pip check — pip 18.1 documentation

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

$ 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でアップデートする必要があります。

Last Updated: 6/26/2019, 10:34:03 PM