ライブラリ: pip

Pythonの「pip」というライブラリ(パッケージ?)についてご紹介します。

pipは、いわゆる「パッケージ管理ツール」。Pythonのライブラリを手軽にインストールしたり管理したりすることができます。メインに使うのは、コマンドラインから使う「pip」コマンドです。

ブラウザなどを使わずにコマンドラインだけでパッケージをインストールしたりできるので、位置づけとしては、Rubyでいうところの「gem」、Linuxの「apt-get」「yum」「rpm」コマンドに近いイメージかなと思います。

以下、使い方を見ていきます。

01 pipそのもののインストール

pipを使うには、「setuptools」「distribute」のどちらかが必要です。

まずはそのどちらかをインストールし、コマンドラインから「easy_install」コマンドが使える状態にしておきます(setuptoolsは更新が止まっているようなので、今ならdistributeの方がおすすめです)。

その状態のもとで次のように打ち込むと、pipをインストールすることができます。

easy_install pip

02 pipを使ったパッケージのインストール

以下、pipを実際に使っていきます。

pip install virtualenv

パッケージをインストールするには、「pip install」を使います。「pip install」に続けてパッケージ名を入れると、pipが該当するパッケージを探してきて、ダウンロード・インストールしてくれます。依存しているパッケージがある場合は、依存関係を調べてあわせてインストールしてくれます。

パッケージ名の照合には、デフォルトでPyPIのパッケージ名一覧ページを使用するようです。

パッケージ名ではなく、URLを指定してインストールすることも可能です。オプションなどは必要なく、パッケージ名の部分にURLをそのまま打ち込みます。

pip install https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.8.4.tar.gz

使う機会はあまり多くはないかと思うのですが(私は使ったことがありません)、依存パッケージをインストールしない設定にしたり、パッケージ名の照合ページを変更したりすることなんかも可能です。

依存したパッケージを入れないなら。

pip install --no-deps virtualenv

パッケージ名の照合先のページを変更したいなら。

pip install --index-url=URL virtualenv

また、easy_installとpipをごちゃまぜで使っていると、easy_installで入れたパッケージがpipでは管理対象外となるなどするようですので、もしpipを使うのであればeasy_installは使わずpip一本に統一した方がよいようです。

03 インストール済みパッケージの確認

pip freeze

インストールされたパッケージを確認したいときは「pip freeze」を使います。各パッケージがパッケージ名とバージョンとをセットにして一覧表示されます。Rubyでいうところの「gem list」ですね。

04 インストールされたパッケージのアンインストール

pip uninstall virtualenv

過去にインストールしたパッケージをアンインストールしたい場合は、「pip uninstall パッケージ名」でできます。

05 パッケージのアップデート

pip install --upgrade virtualenv

パッケージのバージョンを更新するには「pip install」コマンドに「--upgrade」オプションを追加します。すでにpipでインストールできる最新のものが入っている場合はバージョン番号とメッセージが表示されて終了します。

06 おまけ

使い方を忘れてしまったときなんかにはヘルプを覗いてみるとよいかと思います。

pip help

また、複数のマシンに同じPython環境を入れたい場合、virtualenvでいつもお決まりのパッケージを入れている場合なんかには、一括インストール機能が便利です。

pip freeze > packages.txt

pip freezeで出力したパッケージ一覧を「-r」オプションをつけて「pip install」に渡すと、複数のパッケージの一括インストールが可能です。

pip install -r packages.txt

回数が増えてくると、ものすごく重宝します。

また、注意したい点としては、Windowsの場合は、pipではなく実行形式のインストーラ(.exe)を使ってインストールした方がよいものもあるため、実行形式のインストーラがあるかどうかは一度少し調べてから使うのがよいかと思います。

私に馴染んでいるものでいうと、

  • numpy
  • scipy
  • matplotlib
  • iPython
  • PIL

あたりのライブラリは、pipではなくインストーラを使った方がよいようです。

以上です。

私は長年Windowsばかり使ってきたため、pipのようなCUIベースのパッケージ管理ツールにはあまり馴染みがなかったのですが、一度慣れると、ものすごく便利で、、これはもう元には戻れない感じがします。。素晴らしいです。

参考