【Python】pipの使い方

スポンサーリンク

Pythonのパッケージ管理システムであるpipの使い方をまとめました。まだ使用したことのない機能もあるので、今後使用するタイミングがあれば随時追加していきます。

pipとは

Pythonのパッケージ管理システムでRubyでいうGemのようなものです。パッケージは  PyPI - the Python Package Index からインストールされます。Pythonはその他にもパッケージ管理システムがありますが今は pip 一択です。 Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc) がよくまとまってます。

pipのドキュメント  pip — pip 7.1.0 documentation

pipのアップデート

pipはPython 2.7.9 以降、Python 3.4以降からデフォルトでインストールされています。あまり古いバージョンをインストールする人も居ないと思いますが、pipをインストールする必要がある場合は、easy_installpython get-pip.pyでインストールしてください。Pythonをインストールしたらまずはpip自身のアップデートをしておきましょう。

$ pip install -U pip

pipのコマンド

pipのコマンドはpip <command> [options]の形式で入力します。コマンドについてはpip -h、コマンドのオプションについてはpip <command> -hで確認できますが、コマンド毎のオプションも含めると数が多いので選んでピックアップしました。他のコマンドが気になる方は別途確認して下さい。

インストール

パッケージのインストールはpip install <package>です。オプション毎の挙動は以下の通りになります。

バージョンを指定

インストールするパッケージのバージョンは以下のように指定することできます。

$ pip install 'pandas==0.16.2'
$ pip install 'pandas>=0.16.2'
$ pip install 'pandas<0.16.2

パッケージのアップグレード

pipにはアップグレードコマンドがありませんので、インストールコマンドにアップグレードオプション-U/--upgradeを付けます。

$ pip install -U pandas

パッケージを再度インストール

-I/--ignore-installedオプションを付けると、アップグレードとは違ってインストールされているパッケージを無視して再インストールをします。

$ pip install -I pandas

PyPI以外からインストール

パッケージをPyPI以外(ローカルやVCS)からインストールしたい場合は-e/--editable <path/url>オプションを指定します。

$ pip install -e git+git@git.myproject.org:MyProject#egg=MyProject

インストールせずにダウンロードのみ

パッケージをインストールせずにダウンロードしたい場合は-d <dir>オプションを指定します。

$ pip install pycrypto -d /tmp/
$ ll /tmp/pycrypto-2.6.1.tar.gz
-rw-r--r--  1 tasukujp  wheel  446240  8  1 19:12 /tmp/pycrypto-2.6.1.tar.gz

ダウンロードしたファイルは以下のようにインストール可能です。

$ pip install /tmp/pycrypto-2.6.1.tar.gz

ユーザーディレクトリにインストールする

Pythonのディレクトリではなくて--userオプションを指定することで~/.localディレクトリにインストールできます。

$ pip install pycrypto --user

パッケージリストからインストールする

RubyのGemfileのように-r/--requirement <file>を指定すると、ファイルに記載されているパッケージリストをまとめてインストールしてくれます。

$ pip install -r requirements.txt

パッケージリストに関してはfreezeコマンドで作成することができます。バージョン指定はインストール時と同じです。

$ pip freeze > requirements.txt
$ cat requirements.txt
numpy==1.9.2
pandas==0.16.2
python-dateutil==2.4.2
pytz==2015.4
scipy==0.16.0
six==1.9.0

アンインストール

パッケージのインストールはpip uninstall <package>です。-y/--yesオプションを付けると yes,no の確認がなくなります。

$ pip uninstall -y pandas

-r/--requirement <file>オプションでパッケージリストを指定してアンインストールすることもできます。

$ pip uninstall -r requirements.txt

インストール済みパッケージの一覧

パッケージの一覧表示はpip listです。-o/--outdatedオプションを付けると更新可能なパッケージを表示してくれます。

$ pip list -o
pycrypto (Current: 2.4 Latest: 2.6.1 [sdist])

インストール済みパッケージの情報

pip show <package>でインストール済みパッケージの情報を確認できます。インストールされていないパッケージは確認できません。

$ pip show pandas
---
Metadata-Version: 2.0
Name: pandas
Version: 0.16.2
Summary: Powerful data structures for data analysis, time series,and statistics
Home-page: http://pandas.pydata.org
Author: The PyData Development Team
Author-email: pydata@googlegroups.com
License: BSD
Location: /Users/tasukujp/.pyenv/versions/2.7.10/lib/python2.7/site-packages
Requires: pytz, python-dateutil, numpy

-r/--requirement <file>オプションでパッケージリストを指定して確認することもできます。

$ pip uninstall -r requirements.txt

パッケージの検索

pip search <package>でパッケージの検索ができます。デフォルトの検索対象は  PyPI - the Python Package Index です。インストールしている場合はINSTALLEDと表示されます。

$ pip search pandas
...
pandas    - Powerful data structures for data analysis, time series,and statistics
  INSTALLED: 0.16.2 (latest)
...

--index <url>を指定して PyPI 以外を検索対象とすることも可能です。

コマンド補完

コマンド補完を有効にするにはbash_profilezshrcに以下のように設定を保存します。

$ pip completion --bash >> ~/.profile  # bashの場合
$ pip completion --zsh >> ~/.zprofile  # zshの場合