mitsuhiko/pipsi ってのがあります。
@voluntas pipsi install ansibleすると~/.local/venv/ansibleってvenvが切られて実行ファイルは~/.local/bin/にsymlink張られるからモジュールごとに環境は別れるけどパスは1箇所でシステムのpyhonとも分離できる
— Yoichi Fujimoto ◉ (@wozozo) August 12, 2014
インストールすると実行ファイルが吐き出されるパッケージを、パッケージごとに 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 とかでは動かない。