pipによるPythonのパッケージ管理

/

Pythonのパッケージ管理

Pythonのパッケージを管理するには個別にインストールするよりもpipやsetuptoolsを使うのが便利です。

setuptools

Pythonのモジュール構築のための標準ライブラリであるdistutilsを拡張し、easy_installというモジュール追加コマンドを含んだライブラリ。

pip

pipはsetuptoolsを改良して機能を追加したスクリプト。setuptoolsが元になっているためpipをインストールする際にはまずsetuptools(easy_install)がインストールする必要がある。
https://pip.pypa.io/en/stable/

インストール

Python 2.7.9 ,3.4 以降からpipがデフォルトで付属するようになっているので、現在では新しいバージョンのPythonをインストールしていればそのままpipやsetuptoolsを使えます。

もし古い環境のサーバーなどで入手出来るPythonがそれ以前のバージョンの場合には手動でpipをインストールする必要があります。

setuptoolsのインストール

ez_setup.pyを入手してPythonで実行する。

$ wget https://bootstrap.pypa.io/ez_setup.py 
$ python ez_setup.py 

pipのインストール

$ wget “https://bootstrap.pypa.io/get-pip.py”
$ python get-pip.py

参照:python.org

pipの使い方

コマンド

//pipのアップデート
$ pip install -U pip

//パッケージのインストール
$ pip install simplejson

//バージョンを指定してのインストール
$ pip install simplejson==3.8.2

//パッケージのアンインストール
$ pip uninstall simplejson

//パッケージの検索
$ pip search simplejson

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

pipにはインストール済みのパッケージを確認するために”list”コマンドと、もう一つ見慣れない”freeze”というコマンドがあります。

//listコマンドを実行
$ pip list

pip (8.0.2)
setuptools (19.4)
simplejson (3.8.2)
wheel (0.26.0)

//freezeコマンドを実行
$ pip freeze

simplejson==3.8.2
wheel==0.26.0

それぞれを実行するとパッケージの名前とバージョンが表示されるが、その表示のされ方が微妙に違いがあります(ついでに言えばfreezeの方はsetuptoolsとpipの情報が表示されていない)。

freezeコマンドではインストール済みのパッケージ一覧がpipでバージョンを指定してパッケージをインストールする時と同じ表記で出力されます。そのためfreezeコマンドでパッケージのリストをファイルに出力しておいて、別の環境でインストール時にそのファイル読み込めば現在の環境をバージョンごと簡単に移植する事が可能です。

//パッケージのリストをファイルに出力
$ pip freeze > package_list.txt

//ファイルからリストを読み込んで一斉にインストール
$ pip install -r package_list.txt

OSを入れなおす時など同じ環境を設定したい時にこの方法を使うと簡単に環境の復元が出来ます。
参照:pipのlistとfreezeの違い/君たち永遠にそいつらより若い

パッケージを探すためのサイト

Pythonのパッケージ登録サイト
パッケージのランキング

Python logo by © python.org/