pipsi = pip script installer

mitsuhiko/pipsi ってのがあります。

インストールすると実行ファイルが吐き出されるパッケージを、パッケージごとに virtualenv 環境を構築し分離する。システムの Python や各パッケージとは分離はされるけど、1箇所に PATH を通していれば分離されていることは何も考えず実行できます。

$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.9.1.tar.gz
$ tar -xvf virtualenv-1.9.1.tar.gz
$ cd virtualenv-1.9.1/
$ python setup.py install

$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python

$ export PATH=~/.local/bin:$PATH

例えば ansible をインストールすると、ansible コマンドその他もろもろが ~/.local/bin に入ります。

$ pipsi install ansible
......
......
......
Successfully installed ansible paramiko jinja2 PyYAML pycrypto ecdsa markupsafe
Cleaning up...
  Linked script /root/.local/bin/ansible-galaxy
  Linked script /root/.local/bin/ansible-doc
  Linked script /root/.local/bin/ansible-vault
  Linked script /root/.local/bin/ansible-pull
  Linked script /root/.local/bin/ansible
  Linked script /root/.local/bin/ansible-playbook
Done.

気をつける点としては、pipsi でインストール(管理)できるのは実行ファイルが存在すパッケージのみ。逆に言うと実行ファイルが無いパッケージは一切インストールできません。

$ pipsi install requests
New python executable in /root/.local/venvs/requests/bin/python
Installing setuptools............done.
Installing pip...............done.
Downloading/unpacking requests
  Downloading requests-2.3.0.tar.gz (429kB): 429kB downloaded
  Running setup.py egg_info for package requests

Installing collected packages: requests
  Running setup.py install for requests

Successfully installed requests
Cleaning up...
Did not find any scripts.  Uninstalling.

当然、中身は virtualenv なので pipsi 経由でインストールしたパッケージ同士であろうと import しあうことはできません。

試してないけどたぶん Python3.4 とかでは動かない。