note.nkmk.me

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

Date: 2018-10-10 / tags: Python, pip

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

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

  • 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をインストールする方法も記載されている。

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

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

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

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

$ 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
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
future==0.16.0
six==1.11.0

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

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

パッケージのインストール: 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に登録されているものは上述のように名前だけでインストールできる。

最新版やバグフィックスされたものがまだ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.15.0タグがついたバージョンは以下のようにインストールできる。

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

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

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

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

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

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

$ 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に置き換えればOK。

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

スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事