Skip to Content

Python, uv und einen Editor einrichten

Martin Schmid mit Claude · 2026-08-13

Dieses Dokument richtet einen Rechner so ein, dass man mit Python arbeiten kann. Es setzt keine Vorkenntnisse voraus: Wer noch nie ein Terminal geöffnet hat, kann hier anfangen.

Es gehört zu den Tageskursen Schiffe versenken und Crack Me, funktioniert aber auch für sich allein — als Startpunkt für alle, die Python auf ihrem eigenen Rechner ausprobieren wollen.

Zeitbedarf: 20–30 Minuten beim ersten Mal.

Wie du dieses Dokument benutzt: Lies Teil 0, arbeite einen der Teile 1–3 durch (deinen Rechner), dann Teil 4 (Editor) und Teil 5 (Shell). Die Teile 6 bis 8 sind Nachschlagekapitel — Teil 6 solltest du einmal gelesen haben, bevor du loslegst.

Teil Inhalt für wen
0 Was wir installieren und warum alle
1 Windows einrichten Windows
2 macOS einrichten Mac
3 Linux einrichten Linux
4 Der Editor: VSCodium alle
5 Die Shell — das Minimum, das trägt alle
6 Wo tippe ich das eigentlich ein? alle, unbedingt
7 Erste Hilfe bei Problemen
8 Der tägliche Ablauf alle

Teil 0 — Was wir installieren und warum

Wir installieren nicht Python direkt von python.org, sondern ein Werkzeug namens uv. Das klingt nach einem Umweg, ist aber der kürzere Weg:

ohne uv mit uv
Python installieren Installer herunterladen, Haken bei „Add to PATH“ nicht vergessen (Klassiker: vergessen) uv python install 3.12
Mehrere Python-Versionen Konfliktquelle Nummer eins nebeneinander, kein Konflikt
Projektumgebung anlegen python -m venv .venv uv venv
Umgebung aktivieren in jedem neuen Fenster erneut entfällt bei uv run
Paket installieren pip install … — landet manchmal im falschen Python uv pip install …

uv braucht kein vorinstalliertes Python. Es bringt sich seine Python-Versionen selbst mit, in einen eigenen Ordner im Benutzerverzeichnis, ohne Administratorrechte und ohne am System etwas zu verstellen. Ein bereits vorhandenes Python bleibt unberührt daneben stehen.

⚠️ Eine Festlegung vorweg: Wir nehmen Python 3.12. Nicht die neueste Version. Grund: pygame (die Spielebibliothek für beide Kurse) hat für Python 3.14 und 3.15 keine fertigen Pakete. Die Installation versucht dann, pygame aus dem Quellcode zu übersetzen, und scheitert mit einer langen, unverständlichen Fehlermeldung. Mit 3.12 gibt es fertige Pakete, und alles läuft in Sekunden. Deshalb steht in jedem Befehl unten --python 3.12. Das ist kein Tippfehler und keine Nostalgie — es ist die Ursache, aus der die häufigste Installations- katastrophe entsteht.

Was ist eigentlich eine „Projektumgebung“?

Ein Begriff, der gleich mehrfach vorkommt und den man einmal verstanden haben sollte.

Wenn du ein Paket wie pygame installierst, muss es irgendwo hin. Landet es in der System-Python-Installation, teilen sich alle deine Projekte dieselben Pakete — und sobald Projekt A eine andere Version braucht als Projekt B, hast du ein Problem, das sich nicht auflösen lässt.

Eine Projektumgebung (englisch virtual environment, kurz venv) ist deshalb ein Unterordner im Projekt, meist .venv genannt, der eine eigene, abgeschottete Python-Installation enthält. Was du dort hineininstallierst, sieht nur dieses eine Projekt. Löschst du den Ordner, ist alles weg — dein Code bleibt unberührt, denn der liegt in .py-Dateien daneben.

Das ist kein Profi-Luxus, sondern der Normalfall. Auf modernen Linux-Systemen verweigert der Rechner die systemweite Installation sogar ausdrücklich (siehe Teil 3).

Teil 1 — Windows einrichten

Schritt 1: PowerShell öffnen

Windows-Taste drücken, powershell tippen, Enter. Es öffnet sich ein Fenster mit einer Zeile wie:

PS C:\Users\DeinName>

Dieses PS ...> am Anfang der Zeile ist der Prompt. Er sagt dir, wo du bist. Merk dir sein Aussehen — in Teil 6 wird das noch wichtig.

Administratorrechte brauchst du nicht. Wenn dich jemand auffordert, „als Administrator ausführen“ zu wählen: für diese Anleitung nicht nötig.

Schritt 2: uv installieren

Diesen Befehl in PowerShell eintippen (oder kopieren und mit Rechtsklick einfügen) und Enter:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Der Zusatz -ExecutionPolicy ByPass ist nötig, weil Windows das Ausführen von Skripten standardmäßig blockiert. Er gilt nur für diesen einen Befehl und ändert nichts dauerhaft an deinen Einstellungen.

Falls du lieber den Windows-Paketmanager benutzt, geht auch:

winget install --id=astral-sh.uv -e

Schritt 3: PowerShell schließen und neu öffnen

Nicht überspringen. Der Installer hat uv in deinen Suchpfad eingetragen, aber ein bereits geöffnetes Fenster merkt davon nichts. Fenster zu, neues aufmachen.

Kontrolle:

uv --version

Erwartete Antwort: etwas wie uv 0.12.3.

Kommt stattdessen „Die Benennung „uv“ wurde nicht als Name eines Cmdlets … erkannt“, hast du Schritt 3 übersprungen oder die Installation lief nicht durch. Fenster wirklich schließen, neues öffnen, nochmal probieren.

Schritt 4: Python 3.12 installieren

uv python install 3.12

Das lädt eine eigenständige Python-Version herunter (etwa 30 MB) und legt sie in deinem Benutzerordner ab.

Schritt 5: Einen Ordner für das Projekt anlegen

mkdir C:\Users\$env:USERNAME\Projekte\schiffe
cd C:\Users\$env:USERNAME\Projekte\schiffe

💡 Nicht in OneDrive. Ordner wie Dokumente oder Desktop werden auf vielen Windows-Rechnern von OneDrive synchronisiert. OneDrive greift auf Dateien zu, während Python sie beschreibt, und produziert dann sporadische, völlig unerklärliche Fehler. Ein Ordner direkt unter C:\Users\DeinName\Projekte ist davon nicht betroffen.

Schritt 6: Umgebung anlegen und pygame installieren

uv venv --python 3.12
uv pip install pygame

Kontrolle:

uv run python -c "import pygame; print(pygame.version.ver)"

Erwartete Antwort: eine Versionsnummer wie 2.6.1, meist mit einer freundlichen Begrüßung der pygame-Gemeinde darüber. Sobald diese Zeile erscheint, ist die Einrichtung fertig — weiter mit Teil 4 (Editor).

Teil 2 — macOS einrichten

Schritt 1: Terminal öffnen

Cmd + Leertaste, Terminal tippen, Enter. Der Prompt sieht etwa so aus:

deinname@MacBook ~ %

Das % am Ende ist bei neueren Macs üblich (dort läuft die Shell zsh), $ bei älteren mit bash. Für alles in diesem Dokument verhalten sich beide gleich.

Schritt 2: uv installieren

curl -LsSf https://astral.sh/uv/install.sh | sh

Der Befehl lädt ein Installationsskript herunter und führt es aus. Es installiert nach ~/.local/bin — also in dein Benutzerverzeichnis, ohne sudo, ohne Passwort und ohne Eingriff ins System.

💡 Warum kein Homebrew? Wenn du Homebrew schon hast, geht auch brew install uv. Nur für uv extra Homebrew zu installieren, lohnt aber nicht — der Installer oben tut dasselbe in einem Bruchteil der Zeit.

Schritt 3: Terminal schließen und neu öffnen

Nicht überspringen — dieselbe Begründung wie unter Windows: Der Suchpfad des offenen Fensters ist veraltet.

Kontrolle:

uv --version

Sagt die Shell command not found: uv, wurde ~/.local/bin nicht in den Suchpfad aufgenommen. Sofort-Abhilfe für das laufende Fenster — der Installer legt dafür eine kleine Hilfsdatei an:

source $HOME/.local/bin/env

Gibt es diese Datei nicht, tut es auch der direkte Weg:

export PATH="$HOME/.local/bin:$PATH"

Dauerhaft: Die passende Zeile ans Ende von ~/.zshrc schreiben (bei bash: ~/.bash_profile). Danach Terminal neu öffnen.

Schritt 4: Python 3.12 installieren

uv python install 3.12

macOS bringt zwar ein eigenes Python mit, aber meist eine ältere Version — und Apple kann es mit jedem Systemupdate austauschen oder entfernen. Ein Projekt, das darauf aufbaut, hört irgendwann ohne dein Zutun auf zu funktionieren. Deshalb die eigene Version.

Auf Apple Silicon (M1 bis M4) lädt uv automatisch die passende ARM-Version. Rosetta wird nicht gebraucht.

Schritt 5: Projektordner anlegen

mkdir -p ~/Projekte/schiffe
cd ~/Projekte/schiffe

Die Tilde ~ ist die Kurzschreibweise für dein Benutzerverzeichnis, also /Users/deinname. -p legt fehlende Zwischenordner gleich mit an.

💡 Nicht in iCloud Drive. Schreibtisch und Dokumente werden bei aktiviertem iCloud-Sync synchronisiert. Dieselbe Fehlerquelle wie OneDrive unter Windows: Dateien werden ausgelagert oder gesperrt, während dein Programm sie braucht. ~/Projekte liegt außerhalb.

Schritt 6: Umgebung anlegen und pygame installieren

uv venv --python 3.12
uv pip install pygame

Kontrolle:

uv run python -c "import pygame; print(pygame.version.ver)"

Erscheint eine Versionsnummer, ist alles bereit — weiter mit Teil 4 (Editor).

Mac-spezifische Stolpersteine

Symptom Ursache Lösung
command not found: uv ~/.local/bin nicht im Suchpfad source $HOME/.local/bin/env, dauerhaft in ~/.zshrc
„… kann nicht geöffnet werden, da Apple es nicht auf Schadsoftware überprüfen konnte“ Gatekeeper bei heruntergeladenen Programmen (betrifft den Editor, nicht uv) Rechtsklick auf das Programm → Öffnen → im Dialog nochmals Öffnen
xcrun: error: invalid active developer path Command Line Tools fehlen (bei manchen Werkzeugen nötig) xcode-select --install
Ein altes Projekt läuft plötzlich nicht mehr Systemupdate hat das Apple-Python ausgetauscht genau deshalb uv venv --python 3.12

Teil 3 — Linux einrichten

Die Anleitung gilt für alle gängigen Distributionen. Unterschiede gibt es fast nur beim Nachinstallieren von curl.

Schritt 1: Terminal öffnen

Meist Strg + Alt + T, sonst im Anwendungsmenü nach „Terminal“ suchen. Der Prompt sieht etwa so aus:

deinname@rechner:~$

Das $ am Ende bedeutet: normaler Benutzer. Ein # stünde für root — dort sollte man nicht arbeiten.

Schritt 2: curl sicherstellen

Meist ist curl schon da. Prüfen mit curl --version. Falls nicht:

# Debian, Ubuntu, Mint, Pop!_OS
sudo apt update && sudo apt install curl

# Fedora
sudo dnf install curl

# Arch, Manjaro
sudo pacman -S curl

# openSUSE
sudo zypper install curl

Das ist der einzige Schritt, der sudo braucht. Alles Weitere läuft ohne Administratorrechte.

Schritt 3: uv installieren

curl -LsSf https://astral.sh/uv/install.sh | sh

Installiert nach ~/.local/bin, also ins eigene Benutzerverzeichnis. Kein sudo, keine Systemdateien, kein Konflikt mit der Paketverwaltung deiner Distribution — ein Punkt, der auf Linux besonders zählt: Das Python deines Systems gehört dem System, und wer dort hineininstalliert, riskiert kaputte Systemwerkzeuge.

💡 Auch möglich: Manche Distributionen haben uv im eigenen Repository (sudo pacman -S uv unter Arch, sudo dnf install uv unter neueren Fedora). Das ist gleichwertig; der Installer oben ist nur überall verfügbar.

Schritt 4: Terminal neu öffnen

Oder für das laufende Fenster sofort:

source $HOME/.local/bin/env      # Hilfsdatei des Installers

Falls es die Datei nicht gibt:

export PATH="$HOME/.local/bin:$PATH"

Dauerhaft gehört die passende Zeile ans Ende von ~/.bashrc (bzw. ~/.zshrc).

Kontrolle:

uv --version

Schritt 5: Python 3.12 installieren

uv python install 3.12

💡 Warum nicht einfach das Python der Distribution? Weil es dem System gehört. Ubuntu, Debian und Fedora benutzen Python für eigene Systemwerkzeuge; was du dort veränderst, kann diese Werkzeuge beschädigen. Deshalb weigern sich aktuelle Distributionen auch, systemweit Pakete zu installieren, und melden stattdessen error: externally-managed-environment (das ist die Regel PEP 668). Diese Meldung ist kein Defekt, sondern ein Schutzmechanismus — und genau der Grund, warum wir mit Projektumgebungen arbeiten. Mit uv umgehst du das Thema komplett, weil weder Python noch die Pakete das System berühren.

Schritt 6: Projektordner anlegen

mkdir -p ~/Projekte/schiffe
cd ~/Projekte/schiffe

Schritt 7: Umgebung anlegen und pygame installieren

uv venv --python 3.12
uv pip install pygame

Kontrolle:

uv run python -c "import pygame; print(pygame.version.ver)"

Die pygame-Pakete für Linux bringen die benötigte Grafikbibliothek SDL fertig mit (die Ausgabe nennt sie beim Start, z. B. SDL 2.28.4) — es muss dafür normalerweise nichts über die Paketverwaltung nachinstalliert werden.

Linux-spezifische Stolpersteine

Symptom Ursache Lösung
uv: command not found ~/.local/bin nicht im Suchpfad source $HOME/.local/bin/env, dauerhaft in ~/.bashrc bzw. ~/.zshrc
error: externally-managed-environment systemweite Installation versucht (PEP 668) in der Projektumgebung arbeiten: uv pip install … statt pip install …
pygame-Fenster bleibt schwarz oder öffnet nicht (Wayland) SDL wählt den falschen Grafiktreiber testweise SDL_VIDEODRIVER=x11 uv run spiel.py
Kein Ton in pygame ALSA/PulseAudio-Anbindung fehlt für die Kurse verzichtbar; sonst Audio-Pakete der Distribution nachinstallieren
Alles läuft, aber python startet Version 3.11 Distributions-Python im Suchpfad egal — wir starten grundsätzlich mit uv run

Teil 4 — Der Editor: VSCodium

Python-Dateien sind reine Textdateien. Du brauchst einen Editor, der das versteht — nicht Word, nicht WordPad, nicht TextEdit im Standardmodus.

Warum VSCodium und nicht VS Code?

Visual Studio Code von Microsoft ist der verbreitetste Editor für Python. Sein Quellcode steht unter der freizügigen MIT-Lizenz — das Programm, das Microsoft zum Herunterladen anbietet, unterliegt allerdings einer proprietären Produktlizenz, und während des Build-Vorgangs kommen Telemetrie, Microsoft-Branding und die Anbindung an den hauseigenen Erweiterungs-Marktplatz hinzu.

VSCodium ist derselbe Quellcode, nur ohne diese Zutaten gebaut: Das Projekt betreibt Build-Skripte, die Microsofts Repository klonen und ohne die proprietäre product.json übersetzen — heraus kommt ein Programm, das tatsächlich MIT-lizenziert ist, ohne Telemetrie. Funktional bekommst du dieselbe Oberfläche, dieselben Tastenkürzel, dasselbe integrierte Terminal.

Für einen Einstieg auf dem eigenen Rechner ist das die ehrlichere Variante: Man lernt ein Werkzeug, das man vollständig behalten und weitergeben darf.

Installation

Windows:

winget install -e --id VSCodium.VSCodium

macOS: Mit Homebrew brew install --cask vscodium, sonst das .dmg von den GitHub-Releases laden. Beim ersten Start meldet sich womöglich Gatekeeper — dann Rechtsklick auf das Programm, Öffnen, und im Dialog nochmals Öffnen.

Linux: Über die Paketverwaltung, sofern das VSCodium-Repository eingebunden ist; sonst das passende .deb, .rpm oder AppImage von den GitHub-Releases. Unter Arch: yay -S vscodium-bin. Als Flatpak: flatpak install flathub com.vscodium.codium.

Die eine Einschränkung, die du kennen musst

VSCodium darf den Microsoft-Marktplatz nicht benutzen — dessen Nutzungsbedingungen erlauben das nur Microsoft-Produkten. Stattdessen bezieht es Erweiterungen aus der Open VSX Registry, einem herstellerneutralen Verzeichnis der Eclipse Foundation.

Praktisch heißt das für Python:

Erweiterung in VSCodium? Bedeutung
Python (ms-python.python) ✅ ja Syntaxfarben, Ausführen, Debuggen, Interpreter-Auswahl
Pylance (ms-python.vscode-pylance) ❌ nein, dauerhaft proprietär, an das offizielle VS Code gebunden
Pyright / basedpyright ✅ ja freier Ersatz für die Code-Analyse
Ruff ✅ ja schnelle Stilprüfung, optional

Was das konkret kostet: Pylance liefert die besonders schlauen Autovervollständigungen. Es ist aber nur eine optionale Ergänzung — die Python-Erweiterung funktioniert ohne sie vollständig. Für die Kurstage merkst du keinen Unterschied, zumal wir Programme ohnehin mit uv run im Terminal starten. Wer später mehr Komfort will, installiert basedpyright aus Open VSX.

Wem diese Einschränkung zu lästig ist, nimmt VS Code — auch das ist eine legitime Entscheidung. Die Kursinhalte funktionieren mit beiden Editoren identisch.

Einrichtung nach der Installation

  1. Erweiterung installieren: linke Leiste, Symbol mit den vier Quadraten, nach Python suchen, installieren.
  2. Ordner öffnen: Datei → Ordner öffnen → dein Projektordner. Nicht die einzelne Datei öffnen, sondern den Ordner — nur dann findet der Editor die Projektumgebung.
  3. Interpreter auswählen: Strg+Shift+P (Mac: Cmd+Shift+P), Python: Select Interpreter tippen, den Eintrag mit .venv auswählen. Damit weiß der Editor, welches Python zum Projekt gehört.
  4. Integriertes Terminal: Strg + ö (bzw. Ansicht → Terminal). Es öffnet sich unten im Fenster und steht bereits im richtigen Ordner — dort kannst du direkt uv run spiel.py eintippen, ohne das Fenster zu wechseln.

⚠️ Die Dateiendungs-Falle. Speicherst du eine Datei mit dem Windows-Editor als test.py, macht Windows stillschweigend test.py.txt daraus. Das Programm startet dann nie, und die Fehlermeldung hilft nicht weiter. In VSCodium passiert das nicht. Falls du doch einmal Notepad benutzt: im Speichern-Dialog bei „Dateityp“ auf Alle Dateien umstellen.

Teil 5 — Die Shell: das Minimum, das trägt

Die Shell ist das Programm, das im Terminal auf deine Eingaben wartet. Unter Windows heißt sie PowerShell, unter macOS meist zsh, unter Linux meist bash. Sie tut nichts anderes, als Befehle entgegenzunehmen und auszuführen.

Für alles in diesem Dokument reichen fünf Befehle.

Die fünf Befehle

Zweck Windows (PowerShell) macOS / Linux
Wo bin ich gerade? pwd pwd
Was liegt hier? dir (ls geht auch) ls
Ordner wechseln cd Projekte cd Projekte
eine Ebene zurück cd .. cd ..
Ordner anlegen mkdir schiffe mkdir schiffe

Mehr braucht es nicht. cd und dir/ls beantworten zusammen fast jede Frage der Sorte „warum findet er meine Datei nicht?“ — nämlich meistens: weil du im falschen Ordner stehst.

Pfade lesen

Ein Pfad ist eine Wegbeschreibung im Dateisystem. Zwei Sorten:

  • absolut — vom Anfang her: C:\Users\Anna\Projekte\schiffe bzw. /home/anna/Projekte/schiffe
  • relativ — von hier aus: schiffe (Unterordner), .. (eine Ebene höher), . (hier)

Unter macOS und Linux ist ~ die Abkürzung fürs eigene Benutzerverzeichnis: ~/Projekte bedeutet /home/anna/Projekte. Windows benutzt \ als Trennzeichen, alle anderen /.

💡 Enthält ein Pfad Leerzeichen, gehört er in Anführungszeichen: cd "Meine Projekte". Sonst versteht die Shell zwei getrennte Angaben. Genau deshalb vermeiden viele Leute Leerzeichen und Umlaute in Projektordnernamen — nicht aus Prinzip, sondern weil es Tipparbeit spart.

Vier Handgriffe, die den Unterschied machen

1. Tabulator vervollständigt. Tippe cd Proj und drücke Tab — die Shell ergänzt Projekte. Das spart nicht nur Zeit: Wenn nichts ergänzt wird, existiert der Ordner nicht oder du stehst woanders. Tab ist damit die schnellste Fehlerdiagnose überhaupt.

2. Pfeil nach oben holt den letzten Befehl zurück. Mehrfach drücken blättert weiter zurück. Beim Ausprobieren tippt man denselben Befehl selten zweimal.

3. Strg + C bricht ab. Wenn ein Programm läuft und nicht aufhört — hier hört es auf. Das gilt auch für ein hängendes pygame-Fenster.

4. Kopieren und Einfügen ist anders. In PowerShell fügt ein Rechtsklick ein. Im Mac-Terminal gilt Cmd+V wie gewohnt. In vielen Linux-Terminals ist es Strg+Shift+V — das normale Strg+V tut dort nichts, weil Strg+C und Strg+V im Terminal seit jeher andere Bedeutungen haben.

Was du nicht tun solltest

  • Befehle aus dem Internet blind einfügen, besonders nicht mit sudo davor. Das gilt auch für die Befehle in diesem Dokument: Sie stammen von den offiziellen Projektseiten, und du darfst sie nachschlagen.
  • Als root arbeiten (Prompt endet auf #). Für alles hier nicht nötig — der einzige sudo-Befehl im ganzen Dokument ist das Nachinstallieren von curl unter Linux.

Teil 6 — Wo tippe ich das eigentlich ein?

Dieser Abschnitt ist der wichtigste im ganzen Dokument. Fast jede rätselhafte Fehlermeldung der ersten Tage kommt daher, dass etwas an der richtigen Stelle stand — nur eben im falschen Fenster.

Es gibt drei Orte, an denen etwas eingetippt wird. Sie sehen ähnlich aus und verhalten sich völlig verschieden.

Die drei Orte

Ort 1: Terminal Ort 2: Python-Konsole Ort 3: Datei
Prompt PS C:\...> (Windows)
… % / …$ (Mac, Linux)
>>> keiner
Was dort funktioniert uv-Befehle, cd, mkdir Python-Code, Zeile für Zeile Python-Code, dauerhaft
Wofür installieren, Programm starten etwas ausprobieren das eigentliche Programm
Bleibt erhalten? nein, alles weg beim Schließen ja

In den Kursunterlagen ist über jedem Code-Block vermerkt, welcher der drei Orte gemeint ist:

  • 🖥️ Terminal — PowerShell bzw. Terminal
  • 🐍 Python-Konsole — die Zeilen mit >>>
  • 📄 Datei — im Editor schreiben, speichern, dann per Terminal starten

Die Python-Konsole betreten und wieder verlassen

Die Python-Konsole (auch REPL genannt, für Read-Eval-Print-Loop: liest eine Zeile, wertet sie aus, gibt das Ergebnis aus, wartet auf die nächste) ist der Ort zum Ausprobieren. Sie startet aus dem Terminal heraus:

🖥️ Terminal

uv run python

Danach ändert sich der Prompt — das ist das Signal, dass du jetzt woanders bist:

Python 3.12.11 (main, …)
Type "help", "copyright", "credits" or "license" for more information.
>>>

Ab hier gilt Python. Jetzt kannst du Sachen ausprobieren und bekommst sofort eine Antwort, ohne irgendetwas zu speichern:

🐍 Python-Konsole

>>> 2 + 3
5
>>> name = "Kreuzer"
>>> len(name)
7
>>> (3, 5) in {(3, 5), (1, 2)}
True

Die Antwort erscheint direkt darunter — ganz ohne print(). Das ist der eigentliche Reiz dieses Ortes: Du kannst eine Frage stellen und bekommst sofort Antwort.

Wieder heraus kommst du mit:

>>> exit()

(Alternativ: Strg + Z und dann Enter unter Windows, Strg + D unter macOS und Linux.) Der Prompt sieht danach wieder aus wie am Anfang — du bist zurück im Terminal.

⚠️ Wichtig: uv run python — nicht einfach python. Nur so landest du in dem Python, in dem auch pygame installiert ist. Tippst du bloß python, öffnet sich unter Windows womöglich der Microsoft Store, und unter macOS oder Linux startet ein anderes, älteres Python, in dem pygame fehlt.

Ein Programm aus einer Datei starten

Sobald etwas länger als ein paar Zeilen wird, gehört es in eine Datei. Datei im Editor schreiben, speichern (Strg+S), dann im Terminal:

🖥️ Terminal

uv run spiel.py

Wichtig: Das Terminal muss in dem Ordner stehen, in dem die Datei liegt. Mit cd wechselst du dorthin, mit dir (Windows) bzw. ls (Mac, Linux) siehst du, was im aktuellen Ordner liegt. Taucht deine Datei da nicht auf, bist du im falschen Ordner — nicht die Datei ist kaputt.

Der Kompass: die Fehlermeldung verrät den Ort

Wenn du am falschen Ort tippst, sagt der Rechner das ziemlich deutlich — man muss die Meldung nur zuordnen können:

Python-Code ins Terminal getippt:

PS C:\...> laenge = 5
Die Benennung "laenge" wurde nicht als Name eines Cmdlets … erkannt.
… % laenge = 5
zsh: number expected

Das war Python. Du bist aber im Terminal. Mit uv run python in die Python-Konsole wechseln.

Terminal-Befehl in die Python-Konsole getippt:

>>> uv pip install pygame
  File "", line 1
    uv pip install pygame
       ^^^
SyntaxError: invalid syntax

Das war ein Terminal-Befehl. Du bist aber in Python. Mit exit() heraus, dann nochmal.

Diese beiden Meldungen wirst du beide mindestens einmal sehen. Das ist kein Zeichen von Unfähigkeit, sondern der normale Weg, an dem man sich die Unterscheidung antrainiert. Der Trick ist, nicht die Meldung zu lesen und zu resignieren, sondern zuerst auf den Prompt zu schauen: Steht da >>> oder nicht?

Teil 7 — Erste Hilfe

Meldung / Symptom Ursache Lösung
Die Benennung "uv" wurde nicht … erkannt (Windows) Terminal nach der Installation nicht neu gestartet Fenster schließen, neu öffnen
command not found: uv (Mac, Linux) ~/.local/bin nicht im Suchpfad source $HOME/.local/bin/env oder export PATH="$HOME/.local/bin:$PATH", dauerhaft in ~/.zshrc bzw. ~/.bashrc
Beim Tippen von python öffnet sich der Microsoft Store Windows-Platzhalter für nicht installiertes Python uv run python benutzen statt python
ModuleNotFoundError: No module named 'pygame' Programm läuft in einem anderen Python als dem, in das installiert wurde mit uv run spiel.py starten, nicht mit python spiel.py
Bei uv pip install pygame: lange Fehlermeldung mit Getting requirements to build wheel … error Python-Version zu neu (3.14+), es gibt kein fertiges pygame-Paket Umgebung mit uv venv --python 3.12 neu anlegen
error: externally-managed-environment (Linux) systemweite Installation versucht (PEP 668) in der Projektumgebung arbeiten: uv pip install …
zsh: number expected / … nicht als Name eines Cmdlets erkannt Python-Code im Terminal uv run python, dann nochmal
SyntaxError: invalid syntax bei einem uv- oder cd-Befehl Terminal-Befehl in der Python-Konsole exit(), dann nochmal
Programm startet nicht, „Datei nicht gefunden“ falscher Ordner, oder Datei heißt test.py.txt dir bzw. ls prüfen; Datei im Editor neu speichern
can't open file '…spiel.py': No such file or directory Terminal steht im falschen Ordner mit cd in den Projektordner wechseln
Fenster von pygame öffnet sich und friert sofort ein fehlende Ereignisschleife (pygame.event.get()) kein Installationsproblem — siehe Meilenstein 3 im Kurs
pygame-Fenster bleibt schwarz (Linux, Wayland) SDL wählt den falschen Grafiktreiber SDL_VIDEODRIVER=x11 uv run spiel.py

Wenn gar nichts mehr geht

Die Umgebung lässt sich gefahrlos wegwerfen und neu bauen — dein eigener Code liegt in .py-Dateien und ist davon nicht betroffen:

🖥️ Terminal

# Windows
Remove-Item -Recurse -Force .venv
uv venv --python 3.12
uv pip install pygame
# macOS und Linux
rm -rf .venv
uv venv --python 3.12
uv pip install pygame

Das dauert keine Minute. Es ist fast immer schneller, als eine kaputte Umgebung zu reparieren — und es ist der eigentliche Sinn von Projektumgebungen: Sie sind Wegwerfware, dein Code ist es nicht.

Teil 8 — Der tägliche Ablauf

Nach der einmaligen Einrichtung sieht ein Arbeitstag so aus:

🖥️ Terminal

cd C:\Users\DeinName\Projekte\schiffe    # Mac/Linux: cd ~/Projekte/schiffe
uv run spiel.py

Das ist alles. Kein activate, kein source, keine Aktivierung in jedem neuen Fenster. uv run findet den .venv-Ordner im aktuellen Verzeichnis von selbst.

Noch kürzer: Im Editor den Projektordner öffnen und das integrierte Terminal benutzen (Strg + ö) — es steht bereits im richtigen Ordner.

Zum Ausprobieren zwischendurch:

🖥️ Terminal

uv run python

Und ein neues Paket, falls eines dazukommt:

🖥️ Terminal

uv pip install name-des-pakets

Anhang — Für später: das Projekt reproduzierbar machen

Sobald du ein Projekt an jemanden weitergeben oder auf einem zweiten Rechner fortsetzen willst, lohnt sich die Projektvariante von uv:

🖥️ Terminal

uv init --bare              # legt pyproject.toml an
uv add pygame               # trägt die Abhängigkeit dort ein und installiert sie
uv run spiel.py

uv add schreibt die Abhängigkeit in die Datei pyproject.toml und legt zusätzlich eine uv.lock an, in der die exakten Versionen festgehalten sind. Wer das Projekt später kopiert, tippt nur uv sync und bekommt exakt dieselbe Umgebung — bis auf die Nachkommastelle der Versionsnummer. Das funktioniert über Windows, macOS und Linux hinweg mit denselben Befehlen.

Für die ersten Schritte ist das nicht nötig. Für alles, was länger lebt als einen Tag, ist es die halbe Miete.

  • uv — Dokumentation: docs.astral.sh/uv, Installationsanleitungen für alle Systeme
  • VSCodium — Projektseite und Downloads: github.com/VSCodium/vscodium/releases; eine gut lesbare deutschsprachige Einordnung findet sich bei Den's Hub
  • Open VSX Registry — der Erweiterungs-Katalog, den VSCodium benutzt: open-vsx.org
  • pygame — Dokumentation und Beispiele: pygame.org/docs