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_install
かpython 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_profile
やzshrc
に以下のように設定を保存します。
$ pip completion --bash >> ~/.profile # bashの場合 $ pip completion --zsh >> ~/.zprofile # zshの場合