Skip to content

Commit

Permalink
Improve installation documentation
Browse files Browse the repository at this point in the history
Resolves pypa#1618.
Resolves pypa#1619.
Resolves pypa#1620.

Signed-off-by: Bernat Gabor <bgabor8@bloomberg.net>
  • Loading branch information
gaborbernat committed Mar 10, 2020
1 parent b55072e commit 0020e0e
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 1 deletion.
2 changes: 2 additions & 0 deletions docs/changelog/1618.doc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Document requirements (pip + index server) when installing via pip under the installation section - by
:user:`gaborbernat`.
1 change: 1 addition & 0 deletions docs/changelog/1619.doc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Document installing from non PEP-518 systems - :user:`gaborbernat`.
1 change: 1 addition & 0 deletions docs/changelog/1620.doc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Document installing latest unreleased version from Github - :user:`gaborbernat`.
37 changes: 36 additions & 1 deletion docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,31 @@ via pip
Alternatively you can install it within the global Python interpreter itself (perhaps as a user package via the
``--user`` flag). Be cautious if you are using a python install that is managed by your operating system or
another package manager. ``pip`` might not coordinate with those tools, and may leave your system in an
inconsistent state.
inconsistent state. Note, if you go down this path you need to ensure pip is new enough per the subsections below:

.. code-block:: console
python -m pip install --user virtualenv
python -m virtualenv --help
wheel
~~~~~
Installing virtualenv via a wheel (default with pip) requires an installer that can understand the ``python-requires``
tag (see `PEP-503 <https://www.python.org/dev/peps/pep-0503/>`_), with pip this is version ``9.0.0`` (released 2016
November). Furthermore, in case you're not installing it via the PyPi you need to be using a mirror that correctly
forwards the ``python-requires`` tag (notably the OpenStack mirrors don't do this, or older
`devpi <https://github.com/devpi/devpi>`_ versions - added with version ``4.7.0``).

.. _sdist:

sdist
~~~~~
When installing via a source distribution you need an installer that handles the
`PEP-517 <https://www.python.org/dev/peps/pep-0517/>`_ specification. In case of ``pip`` this is version ``18.0.0`` or
later (released on 2018 July). If you cannot upgrade your pip to support this you need to ensure that the build
requirements from `pyproject.toml <https://github.com/pypa/virtualenv/blob/master/pyproject.toml#L2>`_ are satisfied
before triggering the install.

via zipapp
----------

Expand All @@ -43,6 +61,23 @@ minor release use the link ``https://bootstrap.pypa.io/virtualenv/x.y/virtualenv
supporting Python 2.7 use
`https://bootstrap.pypa.io/virtualenv/2.7/virtualenv.pyz <https://bootstrap.pypa.io/2.7/virtualenv/virtualenv.pyz>`_.

via ``setup.py``
----------------
We don't recommend and officially support this method. One should prefer using an installer that supports
`PEP-517 <https://www.python.org/dev/peps/pep-0517/>`_ interface, such as pip ``19.0.0`` or later. That being said you
might be able to still install a package via this method if you satisfy build dependencies before calling the install
command (as described under :ref:`sdist`).

latest unreleased
-----------------
Installing an unreleased version is discouraged and should be only done for testing purposes. If you do so you'll need
a pip version of at least ``18.0.0`` and use the following command:


.. code-block:: console
pip install git+https://github.com/pypa/virtualenv.git@master
.. _compatibility-requirements:

Python and OS Compatibility
Expand Down

0 comments on commit 0020e0e

Please sign in to comment.