# pip — Der Paketinstaller für Python

> Praxis-Guide zu pip — Python-Pakete aus PyPI installieren, in venv-Umgebungen verwalten und über requirements.txt reproduzierbar pinnen.

Source: https://www.jpkc.com/db/cheatsheets/package-managers/pip/

<!-- PROSE:intro -->
pip ist der Standard-Installer für Python-Pakete und holt sie standardmäßig aus dem Python Package Index (PyPI). Damit installierst, aktualisierst und entfernst du Bibliotheken, fixierst deine Abhängigkeiten in einer `requirements.txt` und stellst eine Umgebung jederzeit reproduzierbar wieder her. Als Aufrufform empfiehlt sich `python -m pip`, weil so eindeutig der Interpreter zum Zug kommt, den du gerade meinst – besonders praktisch, wenn mehrere Python-Versionen installiert sind. Dieser Guide zeigt dir die wichtigsten Befehle für den Alltag, vom einzelnen Paket bis zur kompletten virtuellen Umgebung.
<!-- PROSE:intro:end -->

## Pakete installieren

`pip install <package>` — Installiert ein Paket aus PyPI.

```bash
pip install requests
```

`pip install <package>==<version>` — Installiert eine bestimmte Version.

```bash
pip install django==5.0.2
```

`pip install '<package>>=<min>,<<max>'` — Installiert mit Versions-Einschränkungen.

```bash
pip install 'flask>=3.0,<4.0'
```

`pip install -r requirements.txt` — Installiert alle Pakete aus einer Requirements-Datei.

```bash
pip install -r requirements.txt
```

`pip install -e .` — Installiert das aktuelle Projekt im editierbaren Entwicklungsmodus.

```bash
pip install -e .
```

`pip install <package> --user` — Installiert ins Benutzerverzeichnis (kein sudo nötig).

```bash
pip install httpie --user
```

`pip install <url>` — Installiert aus einer Git-Repository-URL.

```bash
pip install git+https://github.com/user/repo.git@main
```

## Deinstallieren & verwalten

`pip uninstall <package>` — Entfernt ein installiertes Paket.

```bash
pip uninstall requests
```

`pip uninstall -y <package>` — Entfernt ohne Bestätigungsabfrage.

```bash
pip uninstall -y flask
```

`pip install --upgrade <package>` — Aktualisiert ein Paket auf die neueste Version.

```bash
pip install --upgrade pip
```

`pip install --upgrade -r requirements.txt` — Aktualisiert alle Pakete aus einer Requirements-Datei.

```bash
pip install --upgrade -r requirements.txt
```

`pip install --force-reinstall <package>` — Erzwingt eine Neuinstallation, auch wenn das Paket bereits installiert ist.

```bash
pip install --force-reinstall numpy
```

## Auflisten & Infos

`pip list` — Listet alle installierten Pakete auf.

```bash
pip list
```

`pip list --outdated` — Zeigt Pakete, für die neuere Versionen verfügbar sind.

```bash
pip list --outdated
```

`pip show <package>` — Zeigt detaillierte Informationen zu einem installierten Paket.

```bash
pip show django
```

`pip show -f <package>` — Zeigt Paketinformationen samt installierter Dateien.

```bash
pip show -f requests
```

`pip search <query>` — Durchsucht PyPI nach Paketen (auf PyPI ggf. deaktiviert).

```bash
pip search 'web framework'
```

## Freeze & Requirements

`pip freeze` — Gibt installierte Pakete im requirements.txt-Format aus.

```bash
pip freeze
```

`pip freeze > requirements.txt` — Speichert die aktuellen Pakete in eine Requirements-Datei.

```bash
pip freeze > requirements.txt
```

`pip freeze --exclude <package>` — Friert ein, schließt aber bestimmte Pakete aus.

```bash
pip freeze --exclude pip --exclude setuptools
```

`pip install -c constraints.txt` — Installiert mit Versions-Einschränkungen aus einer Datei.

```bash
pip install -r requirements.txt -c constraints.txt
```

## Virtuelle Umgebungen

`python -m venv <dir>` — Erstellt eine neue virtuelle Umgebung.

```bash
python -m venv .venv
```

`source <dir>/bin/activate` — Aktiviert eine virtuelle Umgebung (Linux/macOS).

```bash
source .venv/bin/activate
```

`deactivate` — Deaktiviert die aktuelle virtuelle Umgebung.

```bash
deactivate
```

`pip install --target <dir> <package>` — Installiert Pakete in ein bestimmtes Verzeichnis.

```bash
pip install --target ./libs requests
```

## Download & Cache

`pip download <package>` — Lädt Pakete herunter, ohne sie zu installieren.

```bash
pip download -d ./packages requests
```

`pip cache info` — Zeigt Informationen zum pip-Cache.

```bash
pip cache info
```

`pip cache purge` — Leert den pip-Cache.

```bash
pip cache purge
```

`pip install --no-cache-dir <package>` — Installiert, ohne den Cache zu verwenden oder zu speichern.

```bash
pip install --no-cache-dir tensorflow
```

<!-- PROSE:outro -->
## Fazit

pip ist das Fundament des Python-Ökosystems: Mit einer Handvoll Befehlen installierst du Pakete, hältst sie aktuell und machst deine Umgebung über `requirements.txt` reproduzierbar. Installiere möglichst nicht ins System-Python – auf modernen Distributionen wird das durch PEP 668 ohnehin blockiert – sondern arbeite in einer virtuellen Umgebung (`python -m venv`) oder notfalls mit `--user`. Achte darauf, nur vertrauenswürdige PyPI-Pakete zu installieren: Tippfehler im Namen führen schnell zu Typosquatting-Paketen mit Schadcode. Pinne Versionen in der `requirements.txt` und stelle die Umgebung mit `pip install -r` reproduzierbar wieder her.

## Weiterführende Links

- [pip-Dokumentation](https://pip.pypa.io/) – offizielle Referenz zu Befehlen, Optionen und Konfiguration (englisch)
- [Python Packaging User Guide](https://packaging.python.org/) – offizieller Leitfaden zu Paketierung, virtuellen Umgebungen und Best Practices (englisch)
- [PyPI](https://pypi.org/) – der zentrale Index, aus dem pip standardmäßig installiert (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [apk](https://www.jpkc.com/db/cheatsheets/package-managers/apk/) – Paketmanager der Alpine-Linux-Distribution
- [apt](https://www.jpkc.com/db/cheatsheets/package-managers/apt/) – komfortabler Paketmanager für Debian und Ubuntu
- [apt-get](https://www.jpkc.com/db/cheatsheets/package-managers/apt-get/) – klassisches Paketmanagement-Werkzeug für Debian und Ubuntu

