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.


1.7.2 (2012-06-22)
~~~~~~~~~~~~~~~~~~

* Updated to distribute 0.6.27.

* 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.

* Added ability to create virtualenvs without having installed Apple's
  developers tools (using an own implementation of ``install_name_tool``).
  Thanks Mike Hommey.

* Fixed PyPy and Jython support on Windows. Thanks Konstantin Zemlyak.

* Added pydoc script to ease use. Thanks Marc Abramowitz. Fixes #149.

* Fixed creating a bootstrap script on Python 3. Thanks Raul Leal. Fixes #280.

* Fixed inconsistency when having set the ``PYTHONDONTWRITEBYTECODE`` env var
  with the --distribute option or the ``VIRTUALENV_USE_DISTRIBUTE`` env var.
  ``VIRTUALENV_USE_DISTRIBUTE`` is now considered again as a legacy alias.

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_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 <https://bugs.launchpad.net/virtualenv/+bug/241581>`_
  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
  <https://bugs.launchpad.net/virtualenv/+bug/340050>`_ 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
  <http://docs.python.org/dev/whatsnew/2.6.html#pep-370-per-user-site-packages-directory>`_
  (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 <http://code.google.com/p/modwsgi/wiki/VirtualEnvironments>`_.
* 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!
