| Index: bootstrap/virtualenv/docs/reference.rst
|
| diff --git a/bootstrap/virtualenv/docs/reference.rst b/bootstrap/virtualenv/docs/reference.rst
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ca801a007901501063c206b5e0561e21cd6f4456
|
| --- /dev/null
|
| +++ b/bootstrap/virtualenv/docs/reference.rst
|
| @@ -0,0 +1,256 @@
|
| +Reference Guide
|
| +===============
|
| +
|
| +``virtualenv`` Command
|
| +----------------------
|
| +
|
| +.. _usage:
|
| +
|
| +Usage
|
| +~~~~~
|
| +
|
| +:command:`virtualenv [OPTIONS] ENV_DIR`
|
| +
|
| + Where ``ENV_DIR`` is an absolute or relative path to a directory to create
|
| + the virtual environment in.
|
| +
|
| +.. _options:
|
| +
|
| +Options
|
| +~~~~~~~
|
| +
|
| +.. program: virtualenv
|
| +
|
| +.. option:: --version
|
| +
|
| + show program's version number and exit
|
| +
|
| +.. option:: -h, --help
|
| +
|
| + show this help message and exit
|
| +
|
| +.. option:: -v, --verbose
|
| +
|
| + Increase verbosity.
|
| +
|
| +.. option:: -q, --quiet
|
| +
|
| + Decrease verbosity.
|
| +
|
| +.. option:: -p PYTHON_EXE, --python=PYTHON_EXE
|
| +
|
| + The Python interpreter to use, e.g.,
|
| + --python=python2.5 will use the python2.5 interpreter
|
| + to create the new environment. The default is the
|
| + interpreter that virtualenv was installed with
|
| + (like ``/usr/bin/python``)
|
| +
|
| +.. option:: --clear
|
| +
|
| + Clear out the non-root install and start from scratch.
|
| +
|
| +.. option:: --system-site-packages
|
| +
|
| + Give the virtual environment access to the global
|
| + site-packages.
|
| +
|
| +.. option:: --always-copy
|
| +
|
| + Always copy files rather than symlinking.
|
| +
|
| +.. option:: --relocatable
|
| +
|
| + Make an EXISTING virtualenv environment relocatable.
|
| + This fixes up scripts and makes all .pth files relative.
|
| +
|
| +.. option:: --unzip-setuptools
|
| +
|
| + Unzip Setuptools when installing it.
|
| +
|
| +.. option:: --no-setuptools
|
| +
|
| + Do not install setuptools (or pip) in the new
|
| + virtualenv.
|
| +
|
| +.. option:: --no-pip
|
| +
|
| + Do not install pip in the new virtualenv.
|
| +
|
| +.. option:: --extra-search-dir=DIR
|
| +
|
| + Directory to look for setuptools/pip distributions in.
|
| + This option can be specified multiple times.
|
| +
|
| +.. option:: --prompt=PROMPT
|
| +
|
| + Provides an alternative prompt prefix for this
|
| + environment.
|
| +
|
| +.. option:: --never-download
|
| +
|
| + DEPRECATED. Retained only for backward compatibility.
|
| + This option has no effect. Virtualenv never downloads
|
| + pip or setuptools.
|
| +
|
| +.. option:: --no-site-packages
|
| +
|
| + DEPRECATED. Retained only for backward compatibility.
|
| + Not having access to global site-packages is now the
|
| + default behavior.
|
| +
|
| +.. option:: --distribute
|
| +.. option:: --setuptools
|
| +
|
| + Legacy; now have no effect. Before version 1.10 these could be used
|
| + to choose whether to install Distribute_ or Setuptools_ into the created
|
| + virtualenv. Distribute has now been merged into Setuptools, and the
|
| + latter is always installed.
|
| +
|
| +.. _Distribute: https://pypi.python.org/pypi/distribute
|
| +.. _Setuptools: https://pypi.python.org/pypi/setuptools
|
| +
|
| +
|
| +Configuration
|
| +-------------
|
| +
|
| +Environment Variables
|
| +~~~~~~~~~~~~~~~~~~~~~
|
| +
|
| +Each command line option is automatically used to look for environment
|
| +variables with the name format ``VIRTUALENV_<UPPER_NAME>``. That means
|
| +the name of the command line options are capitalized and have dashes
|
| +(``'-'``) replaced with underscores (``'_'``).
|
| +
|
| +For example, to automatically use a custom Python binary instead of the
|
| +one virtualenv is run with you can also set an environment variable::
|
| +
|
| + $ export VIRTUALENV_PYTHON=/opt/python-3.3/bin/python
|
| + $ virtualenv ENV
|
| +
|
| +It's the same as passing the option to virtualenv directly::
|
| +
|
| + $ virtualenv --python=/opt/python-3.3/bin/python ENV
|
| +
|
| +This also works for appending command line options, like ``--find-links``.
|
| +Just leave an empty space between the passed values, e.g.::
|
| +
|
| + $ export VIRTUALENV_EXTRA_SEARCH_DIR="/path/to/dists /path/to/other/dists"
|
| + $ virtualenv ENV
|
| +
|
| +is the same as calling::
|
| +
|
| + $ virtualenv --extra-search-dir=/path/to/dists --extra-search-dir=/path/to/other/dists ENV
|
| +
|
| +.. envvar:: VIRTUAL_ENV_DISABLE_PROMPT
|
| +
|
| + Any virtualenv created when this is set to a non-empty value will not have
|
| + it's :ref:`activate` modify the shell prompt.
|
| +
|
| +
|
| +Configuration File
|
| +~~~~~~~~~~~~~~~~~~
|
| +
|
| +virtualenv also looks for a standard ini config file. On Unix and Mac OS X
|
| +that's ``$HOME/.virtualenv/virtualenv.ini`` and on Windows, it's
|
| +``%APPDATA%\virtualenv\virtualenv.ini``.
|
| +
|
| +The names of the settings are derived from the long command line option,
|
| +e.g. the option :option:`--python <-p>` would look like this::
|
| +
|
| + [virtualenv]
|
| + python = /opt/python-3.3/bin/python
|
| +
|
| +Appending options like :option:`--extra-search-dir` can be written on multiple
|
| +lines::
|
| +
|
| + [virtualenv]
|
| + extra-search-dir =
|
| + /path/to/dists
|
| + /path/to/other/dists
|
| +
|
| +Please have a look at the output of :option:`--help <-h>` for a full list
|
| +of supported options.
|
| +
|
| +
|
| +Extending Virtualenv
|
| +--------------------
|
| +
|
| +
|
| +Creating Your Own Bootstrap Scripts
|
| +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| +
|
| +While this creates an environment, it doesn't put anything into the
|
| +environment. Developers may find it useful to distribute a script
|
| +that sets up a particular environment, for example a script that
|
| +installs a particular web application.
|
| +
|
| +To create a script like this, call
|
| +:py:func:`virtualenv.create_bootstrap_script`, and write the
|
| +result to your new bootstrapping script.
|
| +
|
| +.. py:function:: create_bootstrap_script(extra_text)
|
| +
|
| + Creates a bootstrap script from ``extra_text``, which is like
|
| + this script but with extend_parser, adjust_options, and after_install hooks.
|
| +
|
| +This returns a string that (written to disk of course) can be used
|
| +as a bootstrap script with your own customizations. The script
|
| +will be the standard virtualenv.py script, with your extra text
|
| +added (your extra text should be Python code).
|
| +
|
| +If you include these functions, they will be called:
|
| +
|
| +.. py:function:: extend_parser(optparse_parser)
|
| +
|
| + You can add or remove options from the parser here.
|
| +
|
| +.. py:function:: adjust_options(options, args)
|
| +
|
| + You can change options here, or change the args (if you accept
|
| + different kinds of arguments, be sure you modify ``args`` so it is
|
| + only ``[DEST_DIR]``).
|
| +
|
| +.. py:function:: after_install(options, home_dir)
|
| +
|
| + After everything is installed, this function is called. This
|
| + is probably the function you are most likely to use. An
|
| + example would be::
|
| +
|
| + def after_install(options, home_dir):
|
| + if sys.platform == 'win32':
|
| + bin = 'Scripts'
|
| + else:
|
| + bin = 'bin'
|
| + subprocess.call([join(home_dir, bin, 'easy_install'),
|
| + 'MyPackage'])
|
| + subprocess.call([join(home_dir, bin, 'my-package-script'),
|
| + 'setup', home_dir])
|
| +
|
| + This example immediately installs a package, and runs a setup
|
| + script from that package.
|
| +
|
| +Bootstrap Example
|
| +~~~~~~~~~~~~~~~~~
|
| +
|
| +Here's a more concrete example of how you could use this::
|
| +
|
| + import virtualenv, textwrap
|
| + output = virtualenv.create_bootstrap_script(textwrap.dedent("""
|
| + import os, subprocess
|
| + def after_install(options, home_dir):
|
| + etc = join(home_dir, 'etc')
|
| + if not os.path.exists(etc):
|
| + os.makedirs(etc)
|
| + subprocess.call([join(home_dir, 'bin', 'easy_install'),
|
| + 'BlogApplication'])
|
| + subprocess.call([join(home_dir, 'bin', 'paster'),
|
| + 'make-config', 'BlogApplication',
|
| + join(etc, 'blog.ini')])
|
| + subprocess.call([join(home_dir, 'bin', 'paster'),
|
| + 'setup-app', join(etc, 'blog.ini')])
|
| + """))
|
| + f = open('blog-bootstrap.py', 'w').write(output)
|
| +
|
| +Another example is available `here`__.
|
| +
|
| +.. __: https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py
|
|
|