# python — Der Python-Interpreter auf der Kommandozeile

> Praxis-Guide zum python-CLI: Skripte und REPL, Module per -m, virtuelle Umgebungen anlegen und die Python-Laufzeit konfigurieren.

Source: https://www.jpkc.com/db/cheatsheets/build-languages/python/

<!-- PROSE:intro -->
Das Kommando `python` ist dein Einstieg in den Python-Interpreter: Du führst eine Skriptdatei aus, springst für schnelle Experimente in die interaktive REPL oder gibst mit `-c` einen Einzeiler direkt an den Interpreter weiter. Die eigentliche Stärke liegt im `-m`-Flag, mit dem du jedes installierte Modul wie ein Programm startest – vom schnellen HTTP-Server (`http.server`) über das Anlegen einer virtuellen Umgebung (`venv`) bis zum Aufruf von `pip`. Dieser Guide bündelt die Flags und Module, die du im Alltag wirklich brauchst – ob beim Skripten, Debuggen, Profilen oder einfach beim Ausprobieren.
<!-- PROSE:intro:end -->

## Skripte ausführen

`python <script>` — Führt ein Python-Skript aus.

```bash
python app.py
```

`python <script> <args>` — Führt ein Skript mit Kommandozeilen-Argumenten aus.

```bash
python convert.py --input data.csv --output result.json
```

`python -c '<code>'` — Führt einen Python-Ausdruck direkt aus.

```bash
python -c 'import json; print(json.dumps({"key": "value"}, indent=2))'
```

`python -m <module>` — Startet ein Modul als Skript.

```bash
python -m http.server 8080
```

`python -i <script>` — Führt das Skript aus und wechselt danach in den interaktiven Modus (zum Debuggen).

```bash
python -i setup.py
```

## Interaktiv & REPL

`python` — Startet die interaktive Python-REPL.

```bash
python
```

`python -q` — Startet die REPL im stillen Modus (ohne Versions-Banner).

```bash
python -q
```

`python -m asyncio` — Startet eine async-fähige REPL (unterstützt await).

```bash
python -m asyncio
```

## Debugging & Profiling

`python -m pdb <script>` — Führt das Skript mit dem Python-Debugger aus.

```bash
python -m pdb app.py
```

`python -m cProfile <script>` — Profiliert ein Skript (Laufzeit je Funktion).

```bash
python -m cProfile -s cumtime app.py
```

`python -m timeit '<code>'` — Misst die Laufzeit eines Code-Schnipsels (Benchmark).

```bash
python -m timeit 'sum(range(1000))'
```

`python -m trace --trace <script>` — Verfolgt die Ausführung jeder einzelnen Zeile.

```bash
python -m trace --trace app.py
```

`python -W all <script>` — Zeigt alle Warnungen an.

```bash
python -W all app.py
```

`python -X tracemalloc <script>` — Aktiviert das Verfolgen von Speicher-Allokationen.

```bash
python -X tracemalloc app.py
```

## Nützliche Module

`python -m http.server <port>` — Startet einen einfachen HTTP-Dateiserver.

```bash
python -m http.server 8000
```

`python -m json.tool <file>` — Gibt JSON aus einer Datei oder von stdin formatiert aus.

```bash
echo '{"a":1}' | python -m json.tool
```

`python -m zipfile -c <zip> <files>` — Erstellt ein ZIP-Archiv.

```bash
python -m zipfile -c archive.zip *.py
```

`python -m base64 <file>` — Kodiert eine Datei als Base64.

```bash
python -m base64 image.png
```

`python -m calendar <year>` — Zeigt einen Kalender für ein Jahr an.

```bash
python -m calendar 2026
```

`python -m site` — Zeigt die Python-Pfadkonfiguration und die site-packages-Verzeichnisse an.

```bash
python -m site
```

## Virtuelle Umgebungen

`python -m venv <dir>` — Legt eine virtuelle Umgebung an.

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

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

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

`<dir>\Scripts\activate` — Aktiviert die virtuelle Umgebung (Windows).

```bash
.venv\Scripts\activate
```

`deactivate` — Deaktiviert die aktuelle virtuelle Umgebung.

```bash
deactivate
```

`python -m venv --clear <dir>` — Setzt eine bestehende virtuelle Umgebung zurück.

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

## Info & Optionen

`python --version` — Zeigt die Python-Version an.

```bash
python --version
```

`python -V -V` — Zeigt detaillierte Versionsinfos an (Version, Build, Compiler).

```bash
python -V -V
```

`python -m sysconfig` — Zeigt die Build-Konfiguration von Python an.

```bash
python -m sysconfig
```

`python -O <script>` — Führt mit einfachen Optimierungen aus (entfernt assert-Anweisungen).

```bash
python -O app.py
```

`python -B <script>` — Schreibt keine .pyc-Bytecode-Dateien.

```bash
python -B app.py
```

`python -u <script>` — Ungepufferte Ausgabe auf stdout/stderr (nützlich beim Logging).

```bash
python -u worker.py
```

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

Das python-CLI ist weit mehr als nur ein Startbefehl für Skripte: Mit `-m` wird die Standardbibliothek zum Werkzeugkasten fertiger Helfer, und die REPL bleibt der schnellste Ort, um eine Idee zu testen. Behalte für die Sicherheit eine Regel im Kopf – `-c` und `-m` führen beliebigen Code aus, also nur Schnipsel und Module ausführen, denen du vertraust. Nutze `python -m http.server` ausschließlich als lokalen Entwicklungshelfer, niemals als produktiven Webserver, und greife lieber zu einer projektlokalen virtuellen Umgebung (`python -m venv`), statt Pakete ins System-Python zu installieren. Sobald diese Flags in Fleisch und Blut übergehen, wird der Interpreter zu einem wirklich vielseitigen Alltagswerkzeug.

## Weiterführende Links

- [Python-Dokumentation](https://docs.python.org/3/) – die offizielle Referenz zur Sprache und Standardbibliothek (englisch)
- [Command line and environment](https://docs.python.org/3/using/cmdline.html) – vollständige Liste der Interpreter-Optionen und Umgebungsvariablen (englisch)
- [venv – virtuelle Umgebungen](https://docs.python.org/3/library/venv.html) – isolierte Umgebungen anlegen und verwalten (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [artisan](https://www.jpkc.com/db/cheatsheets/build-languages/artisan/) – PHP-Kommandozeilenwerkzeug von Laravel für Scaffolding und Tasks
- [cargo](https://www.jpkc.com/db/cheatsheets/build-languages/cargo/) – Build-System und Paketmanager für Rust
- [composer](https://www.jpkc.com/db/cheatsheets/build-languages/composer/) – Abhängigkeitsmanager für PHP-Projekte

