pip/docs/html/installing.rst

201 lines
4.9 KiB
ReStructuredText

.. _`Installation`:
============
Installation
============
Do I need to install pip?
=========================
pip is already installed if you are using Python 2 >=2.7.9 or Python 3 >=3.4
downloaded from `python.org <https://www.python.org>`_ or if you are working
in a :ref:`Virtual Environment <pypug:Creating and using Virtual Environments>`
created by :ref:`pypug:virtualenv` or :ref:`pyvenv <pypug:venv>`.
Just make sure to :ref:`upgrade pip <Upgrading pip>`.
.. _`get-pip`:
Installing with get-pip.py
==========================
To install pip, securely [1]_ download ``get-pip.py`` by following
this link: `get-pip.py
<https://bootstrap.pypa.io/get-pip.py>`_. Alternatively, use ``curl``::
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Then run the following command in the folder where you
have downloaded ``get-pip.py``:
.. tabs::
.. group-tab:: Unix/macOS
.. code-block:: shell
python get-pip.py
.. group-tab:: Windows
.. code-block:: shell
py get-pip.py
.. warning::
Be cautious if you are using a Python install that is managed by your operating
system or another package manager. ``get-pip.py`` does not coordinate with
those tools, and may leave your system in an inconsistent state.
``get-pip.py`` also installs :ref:`pypug:setuptools` [2]_ and :ref:`pypug:wheel`
if they are not already. :ref:`pypug:setuptools` is required to install
:term:`source distributions <pypug:Source Distribution (or "sdist")>`. Both are
required in order to build a :ref:`Wheel cache` (which improves installation
speed), although neither are required to install pre-built :term:`wheels
<pypug:Wheel>`.
.. note::
The get-pip.py script is supported on the same python version as pip.
For the now unsupported Python 2.6, alternate script is available
`here <https://bootstrap.pypa.io/2.6/get-pip.py>`__.
get-pip.py options
------------------
.. option:: --no-setuptools
If set, do not attempt to install :ref:`pypug:setuptools`
.. option:: --no-wheel
If set, do not attempt to install :ref:`pypug:wheel`
``get-pip.py`` allows :ref:`pip install options <pip
install Options>` and the :ref:`general options <General Options>`. Below are
some examples:
Install from local copies of pip and setuptools:
.. tabs::
.. group-tab:: Unix/macOS
.. code-block:: shell
python get-pip.py --no-index --find-links=/local/copies
.. group-tab:: Windows
.. code-block:: shell
py get-pip.py --no-index --find-links=/local/copies
Install to the user site [3]_:
.. tabs::
.. group-tab:: Unix/macOS
.. code-block:: shell
python get-pip.py --user
.. group-tab:: Windows
.. code-block:: shell
py get-pip.py --user
Install behind a proxy:
.. tabs::
.. group-tab:: Unix/macOS
.. code-block:: shell
python get-pip.py --proxy="http://[user:passwd@]proxy.server:port"
.. group-tab:: Windows
.. code-block:: shell
py get-pip.py --proxy="http://[user:passwd@]proxy.server:port"
``get-pip.py`` can also be used to install a specified combination of ``pip``,
``setuptools``, and ``wheel`` using the same requirements syntax as pip:
.. tabs::
.. group-tab:: Unix/macOS
.. code-block:: shell
python get-pip.py pip==9.0.2 wheel==0.30.0 setuptools==28.8.0
.. group-tab:: Windows
.. code-block:: shell
py get-pip.py pip==9.0.2 wheel==0.30.0 setuptools==28.8.0
Using Linux Package Managers
============================
See :ref:`pypug:Installing pip/setuptools/wheel with Linux Package Managers` in
the `Python Packaging User Guide
<https://packaging.python.org/guides/tool-recommendations/>`_.
.. _`Upgrading pip`:
Upgrading pip
=============
.. tabs::
.. group-tab:: Unix/macOS
.. code-block:: shell
python -m pip install -U pip
.. group-tab:: Windows
.. code-block:: shell
py -m pip install -U pip
.. _compatibility-requirements:
Python and OS Compatibility
===========================
pip works with CPython versions 2.7, 3.5, 3.6, 3.7, 3.8 and also PyPy.
This means pip works on the latest patch version of each of these minor
versions. Previous patch versions are supported on a best effort approach.
pip works on Unix/Linux, macOS, and Windows.
----
.. [1] "Secure" in this context means using a modern browser or a
tool like ``curl`` that verifies SSL certificates when downloading from
https URLs.
.. [2] Beginning with pip v1.5.1, ``get-pip.py`` stopped requiring setuptools to
be installed first.
.. [3] The pip developers are considering making ``--user`` the default for all
installs, including ``get-pip.py`` installs of pip, but at this time,
``--user`` installs for pip itself, should not be considered to be fully
tested or endorsed. For discussion, see `Issue 1668
<https://github.com/pypa/pip/issues/1668>`_.