mirror of
https://github.com/python/cpython.git
synced 2026-04-13 23:31:02 +00:00
[3.13] Docs: Update "Installing Python modules" (GH-146249) (#148160)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
This commit is contained in:
parent
06f11ecff4
commit
9b576f14bf
1 changed files with 31 additions and 59 deletions
|
|
@ -1,14 +1,14 @@
|
|||
.. highlight:: none
|
||||
.. highlight:: shell
|
||||
|
||||
.. _installing-index:
|
||||
|
||||
*************************
|
||||
Installing Python Modules
|
||||
Installing Python modules
|
||||
*************************
|
||||
|
||||
As a popular open source development project, Python has an active
|
||||
supporting community of contributors and users that also make their software
|
||||
available for other Python developers to use under open source license terms.
|
||||
available for other Python developers to use under open-source license terms.
|
||||
|
||||
This allows Python users to share and collaborate effectively, benefiting
|
||||
from the solutions others have already created to common (and sometimes
|
||||
|
|
@ -32,34 +32,24 @@ creating and sharing your own Python projects, refer to the
|
|||
Key terms
|
||||
=========
|
||||
|
||||
* ``pip`` is the preferred installer program. Starting with Python 3.4, it
|
||||
* :program:`pip` is the preferred installer program. It
|
||||
is included by default with the Python binary installers.
|
||||
* A *virtual environment* is a semi-isolated Python environment that allows
|
||||
packages to be installed for use by a particular application, rather than
|
||||
being installed system wide.
|
||||
* ``venv`` is the standard tool for creating virtual environments, and has
|
||||
been part of Python since Python 3.3. Starting with Python 3.4, it
|
||||
defaults to installing ``pip`` into all created virtual environments.
|
||||
* ``virtualenv`` is a third party alternative (and predecessor) to
|
||||
``venv``. It allows virtual environments to be used on versions of
|
||||
Python prior to 3.4, which either don't provide ``venv`` at all, or
|
||||
aren't able to automatically install ``pip`` into created environments.
|
||||
* The `Python Package Index <https://pypi.org>`__ is a public
|
||||
* ``venv`` is the standard tool for creating virtual environments.
|
||||
It defaults to installing :program:`pip` into all created virtual environments.
|
||||
* ``virtualenv`` is a third-party alternative (and predecessor) to
|
||||
``venv``.
|
||||
* The `Python Package Index (PyPI) <https://pypi.org>`__ is a public
|
||||
repository of open source licensed packages made available for use by
|
||||
other Python users.
|
||||
* the `Python Packaging Authority
|
||||
* The `Python Packaging Authority
|
||||
<https://www.pypa.io/>`__ is the group of
|
||||
developers and documentation authors responsible for the maintenance and
|
||||
evolution of the standard packaging tools and the associated metadata and
|
||||
file format standards. They maintain a variety of tools, documentation,
|
||||
and issue trackers on `GitHub <https://github.com/pypa>`__.
|
||||
* ``distutils`` is the original build and distribution system first added to
|
||||
the Python standard library in 1998. While direct use of ``distutils`` is
|
||||
being phased out, it still laid the foundation for the current packaging
|
||||
and distribution infrastructure, and it not only remains part of the
|
||||
standard library, but its name lives on in other ways (such as the name
|
||||
of the mailing list used to coordinate Python packaging standards
|
||||
development).
|
||||
|
||||
.. versionchanged:: 3.5
|
||||
The use of ``venv`` is now recommended for creating virtual environments.
|
||||
|
|
@ -77,7 +67,7 @@ The standard packaging tools are all designed to be used from the command
|
|||
line.
|
||||
|
||||
The following command will install the latest version of a module and its
|
||||
dependencies from the Python Package Index::
|
||||
dependencies from PyPI::
|
||||
|
||||
python -m pip install SomePackage
|
||||
|
||||
|
|
@ -104,7 +94,7 @@ explicitly::
|
|||
|
||||
python -m pip install --upgrade SomePackage
|
||||
|
||||
More information and resources regarding ``pip`` and its capabilities can be
|
||||
More information and resources regarding :program:`pip` and its capabilities can be
|
||||
found in the `Python Packaging User Guide <https://packaging.python.org>`__.
|
||||
|
||||
Creation of virtual environments is done through the :mod:`venv` module.
|
||||
|
|
@ -122,19 +112,6 @@ How do I ...?
|
|||
|
||||
These are quick answers or links for some common tasks.
|
||||
|
||||
... install ``pip`` in versions of Python prior to Python 3.4?
|
||||
--------------------------------------------------------------
|
||||
|
||||
Python only started bundling ``pip`` with Python 3.4. For earlier versions,
|
||||
``pip`` needs to be "bootstrapped" as described in the Python Packaging
|
||||
User Guide.
|
||||
|
||||
.. seealso::
|
||||
|
||||
`Python Packaging User Guide: Requirements for Installing Packages
|
||||
<https://packaging.python.org/installing/#requirements-for-installing-packages>`__
|
||||
|
||||
|
||||
.. installing-per-user-installation:
|
||||
|
||||
... install packages just for the current user?
|
||||
|
|
@ -148,10 +125,10 @@ package just for the current user, rather than for all users of the system.
|
|||
---------------------------------------
|
||||
|
||||
A number of scientific Python packages have complex binary dependencies, and
|
||||
aren't currently easy to install using ``pip`` directly. At this point in
|
||||
time, it will often be easier for users to install these packages by
|
||||
aren't currently easy to install using :program:`pip` directly.
|
||||
It will often be easier for users to install these packages by
|
||||
`other means <https://packaging.python.org/science/>`__
|
||||
rather than attempting to install them with ``pip``.
|
||||
rather than attempting to install them with :program:`pip`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
|
@ -164,22 +141,18 @@ rather than attempting to install them with ``pip``.
|
|||
|
||||
On Linux, macOS, and other POSIX systems, use the versioned Python commands
|
||||
in combination with the ``-m`` switch to run the appropriate copy of
|
||||
``pip``::
|
||||
:program:`pip`::
|
||||
|
||||
python2 -m pip install SomePackage # default Python 2
|
||||
python2.7 -m pip install SomePackage # specifically Python 2.7
|
||||
python3 -m pip install SomePackage # default Python 3
|
||||
python3.4 -m pip install SomePackage # specifically Python 3.4
|
||||
python3 -m pip install SomePackage # default Python 3
|
||||
python3.14 -m pip install SomePackage # specifically Python 3.14
|
||||
|
||||
Appropriately versioned ``pip`` commands may also be available.
|
||||
Appropriately versioned :program:`pip` commands may also be available.
|
||||
|
||||
On Windows, use the ``py`` Python launcher in combination with the ``-m``
|
||||
On Windows, use the :program:`py` Python launcher in combination with the ``-m``
|
||||
switch::
|
||||
|
||||
py -2 -m pip install SomePackage # default Python 2
|
||||
py -2.7 -m pip install SomePackage # specifically Python 2.7
|
||||
py -3 -m pip install SomePackage # default Python 3
|
||||
py -3.4 -m pip install SomePackage # specifically Python 3.4
|
||||
py -3 -m pip install SomePackage # default Python 3
|
||||
py -3.14 -m pip install SomePackage # specifically Python 3.14
|
||||
|
||||
.. other questions:
|
||||
|
||||
|
|
@ -199,39 +172,38 @@ On Linux systems, a Python installation will typically be included as part
|
|||
of the distribution. Installing into this Python installation requires
|
||||
root access to the system, and may interfere with the operation of the
|
||||
system package manager and other components of the system if a component
|
||||
is unexpectedly upgraded using ``pip``.
|
||||
is unexpectedly upgraded using :program:`pip`.
|
||||
|
||||
On such systems, it is often better to use a virtual environment or a
|
||||
per-user installation when installing packages with ``pip``.
|
||||
per-user installation when installing packages with :program:`pip`.
|
||||
|
||||
|
||||
Pip not installed
|
||||
-----------------
|
||||
|
||||
It is possible that ``pip`` does not get installed by default. One potential fix is::
|
||||
It is possible that :program:`pip` does not get installed by default. One potential fix is::
|
||||
|
||||
python -m ensurepip --default-pip
|
||||
|
||||
There are also additional resources for `installing pip.
|
||||
<https://packaging.python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-and-wheel-are-up-to-date>`__
|
||||
There are also additional resources for `installing pip
|
||||
<https://packaging.python.org/en/latest/tutorials/installing-packages/#ensure-pip-setuptools-and-wheel-are-up-to-date>`__.
|
||||
|
||||
|
||||
Installing binary extensions
|
||||
----------------------------
|
||||
|
||||
Python has typically relied heavily on source based distribution, with end
|
||||
Python once relied heavily on source-based distribution, with end
|
||||
users being expected to compile extension modules from source as part of
|
||||
the installation process.
|
||||
|
||||
With the introduction of support for the binary ``wheel`` format, and the
|
||||
ability to publish wheels for at least Windows and macOS through the
|
||||
Python Package Index, this problem is expected to diminish over time,
|
||||
With the introduction of the binary wheel format, and the
|
||||
ability to publish wheels through PyPI, this problem is diminishing,
|
||||
as users are more regularly able to install pre-built extensions rather
|
||||
than needing to build them themselves.
|
||||
|
||||
Some of the solutions for installing `scientific software
|
||||
<https://packaging.python.org/science/>`__
|
||||
that are not yet available as pre-built ``wheel`` files may also help with
|
||||
that are not yet available as pre-built wheel files may also help with
|
||||
obtaining other binary extensions without needing to build them locally.
|
||||
|
||||
.. seealso::
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue