Changes & News -------------- .. warning:: Python bugfix releases 2.6.8, 2.7.3, 3.1.5 and 3.2.3 include a change that will cause "import random" to fail with "cannot import name urandom" on any virtualenv created on a Unix host with an earlier release of Python 2.6/2.7/3.1/3.2, if the underlying system Python is upgraded. This is due to the fact that a virtualenv uses the system Python's standard library but contains its own copy of the Python interpreter, so an upgrade to the system Python results in a mismatch between the version of the Python interpreter and the version of the standard library. It can be fixed by removing ``$ENV/bin/python`` and re-running virtualenv on the same target directory with the upgraded Python. master (unreleased) ~~~~~~~~~~~~~~~~~~~ * Fix activate.fish on OS X. Fixes #8. Thanks David Schoonover. * Create a virtualenv-x.x script with the Python version when installing, so virtualenv for multiple Python versions can be installed to the same script location. Thanks Miki Tebeka. * Restored ability to create a virtualenv with a path longer than 78 characters, without breaking creation of virtualenvs with non-ASCII paths. Thanks, Bradley Ayers. 1.7.1.2 (2012-02-17) ~~~~~~~~~~~~~~~~~~~~ * Fixed minor issue in `--relocatable`. Thanks, Cap Petschulat. 1.7.1.1 (2012-02-16) ~~~~~~~~~~~~~~~~~~~~ * Bumped the version string in ``virtualenv.py`` up, too. * Fixed rST rendering bug of long description. 1.7.1 (2012-02-16) ~~~~~~~~~~~~~~~~~~ * Update embedded pip to version 1.1. * Fix `--relocatable` under Python 3. Thanks Doug Hellmann. * Added environ PATH modification to activate_this.py. Thanks Doug Napoleone. Fixes #14. * Support creating virtualenvs directly from a Python build directory on Windows. Thanks CBWhiz. Fixes #139. * Use non-recursive symlinks to fix things up for posix_local install scheme. Thanks michr. * Made activate script available for use with msys and cygwin on Windows. Thanks Greg Haskins, Cliff Xuan, Jonathan Griffin and Doug Napoleone. Fixes #176. * Fixed creation of virtualenvs on Windows when Python is not installed for all users. Thanks Anatoly Techtonik for report and patch and Doug Napoleone for testing and confirmation. Fixes #87. * Fixed creation of virtualenvs using -p in installs where some modules that ought to be in the standard library (e.g. `readline`) are actually installed in `site-packages` next to `virtualenv.py`. Thanks Greg Haskins for report and fix. Fixes #167. * Added activation script for Powershell (signed by Jannis Leidel). Many thanks to Jason R. Coombs. 1.7 (2011-11-30) ~~~~~~~~~~~~~~~~ * Gave user-provided ``--extra-search-dir`` priority over default dirs for finding setuptools/distribute (it already had priority for finding pip). Thanks Ethan Jucovy. * Updated embedded Distribute release to 0.6.24. Thanks Alex Gronholm. * Made ``--no-site-packages`` behavior the default behavior. The ``--no-site-packages`` flag is still permitted, but displays a warning when used. Thanks Chris McDonough. * New flag: ``--system-site-packages``; this flag should be passed to get the previous default global-site-package-including behavior back. * Added ability to set command options as environment variables and options in a ``virtualenv.ini`` file. * Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem. * Made ``virtualenv.py`` script executable. 1.6.4 (2011-07-21) ~~~~~~~~~~~~~~~~~~ * Restored ability to run on Python 2.4, too. 1.6.3 (2011-07-16) ~~~~~~~~~~~~~~~~~~ * Restored ability to run on Python < 2.7. 1.6.2 (2011-07-16) ~~~~~~~~~~~~~~~~~~ * Updated embedded distribute release to 0.6.19. * Updated embedded pip release to 1.0.2. * Fixed #141 - Be smarter about finding pkg_resources when using the non-default Python intepreter (by using the ``-p`` option). * Fixed #112 - Fixed path in docs. * Fixed #109 - Corrected doctests of a Logger method. * Fixed #118 - Fixed creating virtualenvs on platforms that use the "posix_local" install scheme, such as Ubuntu with Python 2.7. * Add missing library to Python 3 virtualenvs (``_dummy_thread``). 1.6.1 (2011-04-30) ~~~~~~~~~~~~~~~~~~ * Start to use git-flow. * Added support for PyPy 1.5 * Fixed #121 -- added sanity-checking of the -p argument. Thanks Paul Nasrat. * Added progress meter for pip installation as well as setuptools. Thanks Ethan Jucovy. * Added --never-download and --search-dir options. Thanks Ethan Jucovy. 1.6 ~~~ * Added Python 3 support! Huge thanks to Vinay Sajip and Vitaly Babiy. * Fixed creation of virtualenvs on Mac OS X when standard library modules (readline) are installed outside the standard library. * Updated bundled pip to 1.0. 1.5.2 ~~~~~ * Moved main repository to Github: https://github.com/pypa/virtualenv * Transferred primary maintenance from Ian to Jannis Leidel, Carl Meyer and Brian Rosner * Fixed a few more pypy related bugs. * Updated bundled pip to 0.8.2. * Handed project over to new team of maintainers. * Moved virtualenv to Github at https://github.com/pypa/virtualenv 1.5.1 ~~~~~ * Added ``_weakrefset`` requirement for Python 2.7.1. * Fixed Windows regression in 1.5 1.5 ~~~ * Include pip 0.8.1. * Add support for PyPy. * Uses a proper temporary dir when installing environment requirements. * Add ``--prompt`` option to be able to override the default prompt prefix. * Fix an issue with ``--relocatable`` on Windows. * Fix issue with installing the wrong version of distribute. * Add fish and csh activate scripts. 1.4.9 ~~~~~ * Include pip 0.7.2 1.4.8 ~~~~~ * Fix for Mac OS X Framework builds that use ``--universal-archs=intel`` * Fix ``activate_this.py`` on Windows. * Allow ``$PYTHONHOME`` to be set, so long as you use ``source bin/activate`` it will get unset; if you leave it set and do not activate the environment it will still break the environment. * Include pip 0.7.1 1.4.7 ~~~~~ * Include pip 0.7 1.4.6 ~~~~~ * Allow ``activate.sh`` to skip updating the prompt (by setting ``$VIRTUAL_ENV_DISABLE_PROMPT``). 1.4.5 ~~~~~ * Include pip 0.6.3 * Fix ``activate.bat`` and ``deactivate.bat`` under Windows when ``PATH`` contained a parenthesis 1.4.4 ~~~~~ * Include pip 0.6.2 and Distribute 0.6.10 * Create the ``virtualenv`` script even when Setuptools isn't installed * Fix problem with ``virtualenv --relocate`` when ``bin/`` has subdirectories (e.g., ``bin/.svn/``); from Alan Franzoni. * If you set ``$VIRTUALENV_USE_DISTRIBUTE`` then virtualenv will use Distribute by default (so you don't have to remember to use ``--distribute``). 1.4.3 ~~~~~ * Include pip 0.6.1 1.4.2 ~~~~~ * Fix pip installation on Windows * Fix use of stand-alone ``virtualenv.py`` (and boot scripts) * Exclude ~/.local (user site-packages) from environments when using ``--no-site-packages`` 1.4.1 ~~~~~ * Include pip 0.6 1.4 ~~~ * Updated setuptools to 0.6c11 * Added the --distribute option * Fixed packaging problem of support-files 1.3.4 ~~~~~ * Virtualenv now copies the actual embedded Python binary on Mac OS X to fix a hang on Snow Leopard (10.6). * Fail more gracefully on Windows when ``win32api`` is not installed. * Fix site-packages taking precedent over Jython's ``__classpath__`` and also specially handle the new ``__pyclasspath__`` entry in ``sys.path``. * Now copies Jython's ``registry`` file to the virtualenv if it exists. * Better find libraries when compiling extensions on Windows. * Create ``Scripts\pythonw.exe`` on Windows. * Added support for the Debian/Ubuntu ``/usr/lib/pythonX.Y/dist-packages`` directory. * Set ``distutils.sysconfig.get_config_vars()['LIBDIR']`` (based on ``sys.real_prefix``) which is reported to help building on Windows. * Make ``deactivate`` work on ksh * Fixes for ``--python``: make it work with ``--relocatable`` and the symlink created to the exact Python version. 1.3.3 ~~~~~ * Use Windows newlines in ``activate.bat``, which has been reported to help when using non-ASCII directory names. * Fixed compatibility with Jython 2.5b1. * Added a function ``virtualenv.install_python`` for more fine-grained access to what ``virtualenv.create_environment`` does. * Fix `a problem `_ with Windows and paths that contain spaces. * If ``/path/to/env/.pydistutils.cfg`` exists (or ``/path/to/env/pydistutils.cfg`` on Windows systems) then ignore ``~/.pydistutils.cfg`` and use that other file instead. * Fix ` a problem `_ picking up some ``.so`` libraries in ``/usr/local``. 1.3.2 ~~~~~ * Remove the ``[install] prefix = ...`` setting from the virtualenv ``distutils.cfg`` -- this has been causing problems for a lot of people, in rather obscure ways. * If you use a `boot script <./index.html#boot-script>`_ it will attempt to import ``virtualenv`` and find a pre-downloaded Setuptools egg using that. * Added platform-specific paths, like ``/usr/lib/pythonX.Y/plat-linux2`` 1.3.1 ~~~~~ * Real Python 2.6 compatibility. Backported the Python 2.6 updates to ``site.py``, including `user directories `_ (this means older versions of Python will support user directories, whether intended or not). * Always set ``[install] prefix`` in ``distutils.cfg`` -- previously on some platforms where a system-wide ``distutils.cfg`` was present with a ``prefix`` setting, packages would be installed globally (usually in ``/usr/local/lib/pythonX.Y/site-packages``). * Sometimes Cygwin seems to leave ``.exe`` off ``sys.executable``; a workaround is added. * Fix ``--python`` option. * Fixed handling of Jython environments that use a jython-complete.jar. 1.3 ~~~ * Update to Setuptools 0.6c9 * Added an option ``virtualenv --relocatable EXISTING_ENV``, which will make an existing environment "relocatable" -- the paths will not be absolute in scripts, ``.egg-info`` and ``.pth`` files. This may assist in building environments that can be moved and copied. You have to run this *after* any new packages installed. * Added ``bin/activate_this.py``, a file you can use like ``execfile("path_to/activate_this.py", dict(__file__="path_to/activate_this.py"))`` -- this will activate the environment in place, similar to what `the mod_wsgi example does `_. * For Mac framework builds of Python, the site-packages directory ``/Library/Python/X.Y/site-packages`` is added to ``sys.path``, from Andrea Rech. * Some platform-specific modules in Macs are added to the path now (``plat-darwin/``, ``plat-mac/``, ``plat-mac/lib-scriptpackages``), from Andrea Rech. * Fixed a small Bashism in the ``bin/activate`` shell script. * Added ``__future__`` to the list of required modules, for Python 2.3. You'll still need to backport your own ``subprocess`` module. * Fixed the ``__classpath__`` entry in Jython's ``sys.path`` taking precedent over virtualenv's libs. 1.2 ~~~ * Added a ``--python`` option to select the Python interpreter. * Add ``warnings`` to the modules copied over, for Python 2.6 support. * Add ``sets`` to the module copied over for Python 2.3 (though Python 2.3 still probably doesn't work). 1.1.1 ~~~~~ * Added support for Jython 2.5. 1.1 ~~~ * Added support for Python 2.6. * Fix a problem with missing ``DLLs/zlib.pyd`` on Windows. Create * ``bin/python`` (or ``bin/python.exe``) even when you run virtualenv with an interpreter named, e.g., ``python2.4`` * Fix MacPorts Python * Added --unzip-setuptools option * Update to Setuptools 0.6c8 * If the current directory is not writable, run ez_setup.py in ``/tmp`` * Copy or symlink over the ``include`` directory so that packages will more consistently compile. 1.0 ~~~ * Fix build on systems that use ``/usr/lib64``, distinct from ``/usr/lib`` (specifically CentOS x64). * Fixed bug in ``--clear``. * Fixed typos in ``deactivate.bat``. * Preserve ``$PYTHONPATH`` when calling subprocesses. 0.9.2 ~~~~~ * Fix include dir copying on Windows (makes compiling possible). * Include the main ``lib-tk`` in the path. * Patch ``distutils.sysconfig``: ``get_python_inc`` and ``get_python_lib`` to point to the global locations. * Install ``distutils.cfg`` before Setuptools, so that system customizations of ``distutils.cfg`` won't effect the installation. * Add ``bin/pythonX.Y`` to the virtualenv (in addition to ``bin/python``). * Fixed an issue with Mac Framework Python builds, and absolute paths (from Ronald Oussoren). 0.9.1 ~~~~~ * Improve ability to create a virtualenv from inside a virtualenv. * Fix a little bug in ``bin/activate``. * Actually get ``distutils.cfg`` to work reliably. 0.9 ~~~ * Added ``lib-dynload`` and ``config`` to things that need to be copied over in an environment. * Copy over or symlink the ``include`` directory, so that you can build packages that need the C headers. * Include a ``distutils`` package, so you can locally update ``distutils.cfg`` (in ``lib/pythonX.Y/distutils/distutils.cfg``). * Better avoid downloading Setuptools, and hitting PyPI on environment creation. * Fix a problem creating a ``lib64/`` directory. * Should work on MacOSX Framework builds (the default Python installations on Mac). Thanks to Ronald Oussoren. 0.8.4 ~~~~~ * Windows installs would sometimes give errors about ``sys.prefix`` that were inaccurate. * Slightly prettier output. 0.8.3 ~~~~~ * Added support for Windows. 0.8.2 ~~~~~ * Give a better warning if you are on an unsupported platform (Mac Framework Pythons, and Windows). * Give error about running while inside a workingenv. * Give better error message about Python 2.3. 0.8.1 ~~~~~ Fixed packaging of the library. 0.8 ~~~ Initial release. Everything is changed and new!