virtualenvとpipでPyPIパッケージをローカルインストールして使う
PythonでPyPIパッケージをローカルインストールして使うには、virtualenvを使う。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.2 LTS Release: 12.04 Codename: precise
まず、apt等のパッケージマネージャでvirtualenvをインストールする。 このとき、Python用のパッケージマネージャpipも一緒に入る。
$ sudo apt-get install python-virtualenv
適当なディレクトリに移動した後、次のようにすることでENV以下に仮想Python環境が作成される。
$ mkdir test $ cd test/ $ virtualenv --distribute ENV New python executable in ENV/bin/python Installing distribute.............................................................................................................................................................................................done. Installing pip...............done.
仮想Python環境を有効にするには次を実行する。 仮想環境に入っている間は、シェルのプロンプトに環境名が表示される。
$ source ENV/bin/activate
仮想環境に入った状態でpipコマンドを実行することで、ライブラリがローカルインストールされる。 たとえば、次の例では高機能対話シェルbpythonをインストールする。
(ENV)$ pip install bpython
Downloading/unpacking bpython
Downloading bpython-0.12.tar.gz (130Kb): 130Kb downloaded
Running setup.py egg_info for package bpython
warning: no files found matching 'bpython/translations/*/LC_MESSAGES/bpython.mo'
Downloading/unpacking pygments (from bpython)
Downloading Pygments-1.6.tar.gz (1.4Mb): 1.4Mb downloaded
Running setup.py egg_info for package pygments
Installing collected packages: bpython, pygments
Running setup.py install for bpython
warning: no files found matching 'bpython/translations/*/LC_MESSAGES/bpython.mo'
Installing bpython-urwid script to /home/user/tmp/test/ENV/bin
Installing bpython script to /home/user/tmp/test/ENV/bin
Installing bpython-gtk script to /home/user/tmp/test/ENV/bin
Running setup.py install for pygments
Installing pygmentize script to /home/user/tmp/test/ENV/bin
Successfully installed bpython pygments
Cleaning up...
(ENV)$ bpython
pip freeze -lは仮想環境内にインストールされているパッケージの一覧を出力する。
この出力をrequirements.txtというファイル名で保存しておけば、これを利用して別の環境で同一のライブラリを揃えることができる。
(ENV)$ pip freeze -l > requirements.txt (ENV)$ pip install -r requirements.txt
仮想環境から抜けるには、deactiveコマンドを実行すればよい。
(ENV)$ deactivate
PyPIから入れられないパッケージについては、ファイル本体やgit等からインストールすることもできる。 次の例は、現時点でPyPIからのインストールに失敗するdpktをファイル本体からインストールする。
$ pip install https://dpkt.googlecode.com/files/dpkt-1.7.tar.gz