Installing Python Modules
*************************

Email:
   distutils-sig@python.org

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.

Dies ermöglicht es Python-Nutzern, effektiv zusammenzuarbeiten und
sich auszutauschen; sie profitieren von Lösungen, die andere bereits
für häufige (und bisweilen sogar seltene!) Probleme entwickelt haben,
und können ihrerseits eigene Lösungen zu diesem gemeinsamen Pool
beisteuern.

Dieser Leitfaden behandelt den Installationsschritt des Prozesses. Für
eine Anleitung zum Erstellen und Teilen eigener Python-Projekte
beachte den Python Packaging User Guide.

Bemerkung:

  Für Unternehmen und andere institutionelle Nutzer: Bitte beachten
  Sie, dass viele Organisationen eigene Richtlinien zur Nutzung von
  und zur Mitarbeit an Open-die mit Python bereitgestellten Tools für
  Distribution und Installation verwenden.


Schlüsselbegriffe
=================

* "pip" is the preferred installer program. Starting with Python 3.4,
  it is included by default with the Python binary installers.

* Eine *virtuelle Umgebung* ist eine teilisolierte Python-Umgebung,
  die es ermöglicht, Pakete für die Verwendung durch eine bestimmte
  Anwendung zu installieren, anstatt sie systemweit zu installieren.

* "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 is a public repository of open source
  licensed packages made available for use by other Python users.

* the Python Packaging Authority 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.

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

Geändert in Version 3.5: Die Verwendung von "venv" wird nun für das
Erstellen virtueller Umgebungen empfohlen.

Siehe auch:

  Python Packaging User Guide: Erstellen und Verwenden virtueller
  Umgebungen


Grundlegende Verwendung
=======================

Die Standard-Paketierungswerkzeuge sind alle für die Verwendung über
die Befehlszeile konzipiert.

The following command will install the latest version of a module and
its dependencies from the Python Package Index:

   python -m pip install SomePackage

Bemerkung:

  Für POSIX-Anwender (einschließlich macOS- und Linux-Nutzern) setzen
  die Beispiele in diesem Leitfaden die Verwendung einer *virtuellen
  Umgebung* voraus.Für Windows-Benutzer setzen die Beispiele in dieser
  Anleitung voraus, dass bei der Installation von Python die Option
  zur Anpassung der System-Umgebungsvariablen PATH ausgewählt wurde.

Es ist auch möglich, eine genaue oder minimale Version direkt auf der
Befehlszeile anzugeben. Bei Verwendung von Vergleichsoperatoren wie
">", "<" oder anderen „Sonderzeichen, die von der Shell interpretiert
werden, sollte der Paketname und “die Version in doppelten
Anführungszeichen gesetzt werden::“

   python -m pip install SomePackage==1.0.4    # speziische Version
   python -m pip install "SomePackage>=1.0.4"  # mindestens geforderte Version

Wenn ein geeignetes Modul bereits installiert ist, hat ein erneuter
Installationsversuch normalerweise keine Auswirkung. Die
Aktualisierung vorhandener Module muss ausdrücklich angefordert
werden:

   python -m pip install --upgrade SomePackage

More information and resources regarding "pip" and its capabilities
can be found in the Python Packaging User Guide.

Virtuelle Umgebungen werden mithilfe des Moduls "venv" erstellt. Für
die Installation von Paketen in einer aktiven virtuellen Umgebung
werden die oben gezeigten Befehle verwendet.

Siehe auch:

  Python Packaging User Guide: Installation von Python-
  Distributionspaketen


Wie mach ich es ...?
====================

Dies sind schnelle Antworten oder Links für übliche Aufgaben.


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

Siehe auch:

  Python Packaging User Guide: Requirements for Installing Packages


... Pakete nur für den aktuellen Benutzer installieren?
-------------------------------------------------------

Die Übergabe der Option "--user" an "python -m pip install"
installiert ein Paket nur für den aktuellen Benutzer, anstatt für alle
Benutzer des Systems.


... wissenschaftliche Python-Pakete installieren?
-------------------------------------------------

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 other means rather than attempting to
install them with "pip".

Siehe auch:

  Python Packaging User Guide: Installation wissenschaftlicher Pakete
  <https://packaging.python.org/science/>“


...mit mehreren parallel installierten Python-Versionen arbeiten?
-----------------------------------------------------------------

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":

   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

Appropriately versioned "pip" commands may also be available.

On Windows, use the "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


Häufige Installationsprobleme
=============================


Installation in das System-Python unter Linux
---------------------------------------------

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

On such systems, it is often better to use a virtual environment or a
per-user installation when installing packages with "pip".


Pip ist nicht installiert.
--------------------------

It is possible that "pip" does not get installed by default. One
potential fix is:

   python -m ensurepip --default-pip

There are also additional resources for installing pip.


Installation von Binärerweiterungen
-----------------------------------

Python has typically 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, 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 that are not
yet available as pre-built "wheel" files may also help with obtaining
other binary extensions without needing to build them locally.

Siehe auch: Python Packaging User Guide: Binäre Erweiterungen
