RVirtualEnv 0.3.2
relocatable python virtual environment
License: BSD

======================================
relocatable python virtual environment
======================================

package inspired a lot by ian bicking's virtualenv_ but created in fashion
that it can be relocated freely through the filesystem, renamed, backuped, ...

.. _virtualenv: http://bitbucket.org/ianb/virtualenv/

second nice feature is, that you can customize your python environment
via ``{{ENV}}/pythonrc.py`` in any curious way you want.

works with python3, pypy

install
-------

you can `install this package from pypi`_::

  pip install RVirtualEnv

  # or
  easy_install RVirtualEnv

  # or just clone this repository
  git clone http://github.com/kvbik/rvirtualenv

you should definitely `try development version`__

.. _install this package from pypi: http://pypi.python.org/pypi/RVirtualEnv

__ development_

to create new virtual environment just call::

  rvirtualenv ~/PYENV1

  # or directly from this repo

  ./rvirtualenv.py ~/PYENV2

usage
-----

to enable environment, do::

  # on unix
  export PYTHONPATH=~/PYENV1:$PYTHONPATH

  # on windows
  set PYTHONPATH=c:\PYENV1;%PYTHONPATH%

after that, you can call any python command (eg: ``pip`` or ``easy_install``, ``ipython``, ...)
and it will have access to your virtual environment.

if you don't want to mess up with environment, just call our wrapper::

  # on unix
  ~/PYENV1/bin/python [any [params]]

  # on win
  c:\PYENV1\bin\python.bat [any [params]]

it should work with mod-wsgi ``python-path`` option as well,
and you can enable it in runtime via ``site.addsitedir(venv_directory)``.

tests
-----

if you are interested in testing this package, it should support many standard ways of running tests.
nose is used for test discovery.

you can run any of these commands:

 * ``python setup.py test``
 * ``nosetests``
 * ``./tests/test_all.py``

package was tested on:

 * archlinux with python 3.2
 * archlinux with python 2.7
 * macosx 10.6 python 2.6
 * ms windows with python 2.6
 * ubuntu 10.04 python 2.6
 * debian lenny with python 2.5
 * debian etch with python 2.4

but there is no build environment yet.

why
---

main reasons why this package came into existence:

 * it does not copy python binary
 * it does not symlink core python libraries
 * you can just set up PYTHONPATH env variable
   and you can use any system-wide command (eg: easy_install, pip)
 * you can tune ``pythonrc.py`` file to your needs
   in any curious ways (useful for debugging/testing)

todo
----

you can use the `issue tracker`__ for more (or in `TODO.rst` in this repo)
but some of the long term goals are here

 * test building and installing some c extension
 * test install tools (``pip``, ``easy_install`` and others)
 * better virtualenv inheritance
   (and handle more virtualenvs defined on ``pythonpath``)

__ https://github.com/kvbik/rvirtualenv/issues

development
-----------

see http://github.com/kvbik/rvirtualenv

changelog
---------

0.3.x
~~~~~

aka branch `releases/rvirtualenv-0.3`__

__ https://github.com/kvbik/rvirtualenv/tree/releases/rvirtualenv-0.3

0.3.2
~~~~~

* sorry, this version does not work in interactive mode on windows, we will try hard to
  solve bill's issue
* a subprocess call in ``python.py`` replaced with ``os.execvp``, which means less forks
  and `gunicorn`_ via `supervisor`_ should work when called via our ``python`` wrapper
  (see `issue #2`_ for more)
* system-wide installed rvirtualenv does work and creates virtualenvs correctly
  - there were issues with read only fs for non privileged users
* repository cleanup before `upload to pypi`_, so it should be installable
  (without any notes from build env - like ``#!/usr/bin/python2`` in `issue #1`_)
* `setuptools_dummy`_ replaced in favour of plain `MANIFEST.in`_

.. _setuptools_dummy: http://pypi.python.org/pypi/setuptools_dummy/
.. _MANIFEST.in: http://docs.python.org/distutils/sourcedist.html#the-manifest-in-template
.. _upload to pypi: http://pypi.python.org/pypi/RVirtualEnv
.. _issue #1: https://github.com/kvbik/rvirtualenv/issues/1
.. _gunicorn: http://gunicorn.org/
.. _supervisor: http://supervisord.org/
.. _issue #2: https://github.com/kvbik/rvirtualenv/pull/2

0.3.1
~~~~~

* implemented cmd-line virtualenv compatible options
  (``--no-site-packages``, ``--python``, ``--prompt``)
* no site packages option for pythonrc 
* non python data installed to python package (fixed bug introduced in `0.3.0`_)

0.3.0
~~~~~

* `python3`_ support - it really works, tests are passing
* support for `virtualenv wrapper`_ (via: ``source PY/bin/activate``)
* inherit one virtualenv to another
* ``bin/activate`` works, also on windows and relocatable
* complete rewrite of venv
* custom install command so you can define your own layout
* proper functionality on macos and ubuntu

.. _virtualenv wrapper: http://www.doughellmann.com/projects/virtualenvwrapper/
.. _python3: http://diveintopython3.org/

0.2.x
~~~~~

aka branch `releases/rvirtualenv-0.2`__

__ https://github.com/kvbik/rvirtualenv/tree/releases/rvirtualenv-0.2

* installing extensions into virtual environment works
* not released, but merged to 0.3

0.2.3
~~~~~

* fixing problems with relative path when creating virtualenv
* more compatibility with pip and uninstalling system packages (``sys.real_prefix``)
* tests passing with distribute_ (aka setuptools_ fork)

.. _distribute: http://bitbucket.org/tarek/distribute/
.. _setuptools: http://pypi.python.org/pypi/setuptools

0.2.2
~~~~~

initial versions (<=0.2.2)