-
Notifications
You must be signed in to change notification settings - Fork 0
GUIDE‐Quickstart
Letztes Update: 04. Februar 2026
- Wozu Quickstart-Bereitstellung?
- Grundprinzip
- Struktur im Repository
- Quickstart für Windows (
.bat) - Quickstart für Linux / macOS (
.sh) - Dokumentation der Quickstart-Skripte
- Best Practices
- Troubleshooting & typische Fehler
- Weiterführende Links
Ziel: Ein neuer Nutzer soll das Projekt mit so wenig Schritten wie möglich lokal starten können – idealerweise durch einen Doppelklick (Windows) oder einen Befehl im Terminal (Linux/macOS).
Typische Ziele:
-
Schneller Einstieg: Neue Studierende / Teammitglieder brauchen kein Vorwissen zu
venv,pip, etc. -
Reproduzierbare Umgebung: Alle nutzen denselben Setup-Prozess (PEP-/PyPA-konform;
pyproject.toml,.venv). -
OS-unabhängigkeit: Primär Windows (Batch), optional ergänzend POSIX-Shell (
.sh) für Linux/macOS.
Ein Quickstart-Skript soll:
-
Idempotent sein
– mehrmaliges Ausführen darf nichts kaputt machen (nur updaten). -
Automatisch:
-
Virtuelle Umgebung (
.venv) erzeugen, falls nicht vorhanden -
Abhängigkeiten (aus
pyproject.toml) (ggf. viauvoderpip) installieren - optional: Lock-File (
pylock.toml/uv.lock) respektieren - das eigentliche Programm oder eine Demo starten
-
Virtuelle Umgebung (
-
Sichtbar dokumentiert werden
– in einer lokalen README im Projekt.
Empfohlene Struktur:
myproject/
├── src/
│ └── myproject/
│ └── __init__.py
├── quickstart.bat # Quickstart fuer Windows
├── quickstart.sh # Optional: Quickstart fuer Linux/macOS
├── README.md # Projekt-README (funktional)
├── pyproject.toml # PEP 621 – Abhängigkeiten & Metadaten
├── pylock.toml # Optional: Lock-File (PEP 751)
└── .venv/ # Wird automatisch erstellt (nicht committen)
Merke: Quickstart-Skripte liegen im Projekt-Root, damit sie einfach zu finden und auszuführen sind.
Auf Windows ist das Ziel:
Nutzer lädt das Repo → entpackt → Doppelklick auf
quickstart.bat→ Projekt läuft.
Aufgaben des Batch-Skripts:
- Python-Version prüfen (optional: Mindestversion aus
pyproject.tomlauslesen / im Kommentar erwähnen) - Virtuelle Umgebung
.venvanlegen (falls nicht vorhanden) -
.venvaktivieren - Abhängigkeiten installieren
- bevorzugt über
uv(falls vorhanden) - sonst Fallback auf
python -m pip
- bevorzugt über
- Startkommando ausführen (z.B.
python -m myprojectoderpython src/myproject/main.py)
Minimalbeispiel mit Fallback auf pip
@echo off
setlocal
echo [Quickstart] Python-Projekt wird vorbereitet...
REM 1) Pruefen, ob python verfuegbar ist
python --version >NUL 2>&1
if errorlevel 1 (
echo [Fehler] Python ist nicht im PATH. Bitte Python 3.10+ installieren.
pause
exit /b 1
)
REM 2) Virtuelle Umgebung .venv erstellen (falls noetig)
if not exist ".venv" (
echo [Quickstart] Erzeuge virtuelle Umgebung (.venv) ...
python -m venv .venv
)
REM 3) venv aktivieren
call ".venv\Scripts\activate.bat"
REM 4) Paketmanager bestimmen: zuerst uv, sonst pip
where uv >NUL 2>&1
if %errorlevel%==0 (
echo [Quickstart] Verwende uv fuer Installation ...
uv sync --frozen || (
echo [Warnung] uv sync fehlgeschlagen, versuche pip...
goto :pip_fallback
)
) else (
echo [Quickstart] uv nicht gefunden, verwende pip ...
goto :pip_fallback
)
goto :run_app
:pip_fallback
python -m pip install --upgrade pip
python -m pip install -e .[dev]
:run_app
echo.
echo [Quickstart] Starte Anwendung...
REM Hier das eigentliche Startkommando anpassen:
python -m myproject
echo.
echo [Quickstart] Beendet.
pause
endlocalHinweis:
- Das Skript geht davon aus, dass
pyproject.tomlvorhanden ist und das Paketmyprojectheißt.- Falls dein CLI-Entry-Point über
pyproject.tomldefiniert ist (z.B.myproject-cli), kannst du im Block:run_appeinfachmyproject-cliaufrufen.
Hinweis zu Windows & Aktivierung der virtuellen Umgebung:
Der Schrittcall ".venv\Scripts\activate.bat"funktioniert auf den meisten Systemen. Auf einigen Windows-Installationen (insbesondere mit restriktiven Execution Policies oder wenn PowerShell als Standard genutzt wird) kann dieser Befehl jedoch fehlschlagen.
In diesem Fall kann die virtuelle Umgebung stattdessen manuell in PowerShell aktiviert werden:
.\.venv\Scripts\Activate.ps1Falls dabei eine Sicherheitswarnung erscheint, muss ggf. die Execution Policy angepasst werden (z. B. temporär mit:
Set-ExecutionPolicy -Scope Process RemoteSigned ```).
Für POSIX-Systeme reicht typischerweise ein Shell-Skript.
Es sollte dieselben Schritte wie quickstart.bat ausführen, aber in Bash/Zsh-Syntax.
Minimalbeispiel (Bash)
#!/usr/bin/env bash
set -euo pipefail
echo "[Quickstart] Python-Projekt wird vorbereitet ..."
# 1) Python prüfen
if ! command -v python &>/dev/null; then
echo "[Fehler] 'python' nicht gefunden. Bitte Python 3.10+ installieren."
exit 1
fi
# 2) Virtuelle Umgebung erstellen
if [ ! -d ".venv" ]; then
echo "[Quickstart] Erzeuge virtuelle Umgebung (.venv) ..."
python -m venv .venv
fi
# 3) venv aktivieren
# shellcheck disable=SC1091
source .venv/bin/activate
# 4) Paketmanager: uv bevorzugen
if command -v uv &>/dev/null; then
echo "[Quickstart] Verwende uv fuer Installation ..."
if ! uv sync --frozen; then
echo "[Warnung] uv sync fehlgeschlagen, versuche pip..."
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
fi
else
echo "[Quickstart] uv nicht gefunden, verwende pip ..."
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
fi
# 5) Anwendung starten
echo
echo "[Quickstart] Starte Anwendung ..."
python -m myproject
echo
echo "[Quickstart] Beendet."Benutzung:
chmod +x quickstart.sh ./quickstart.sh
Damit der Quickstart nicht „magisch“ wirkt, sondern mithilfe dieses Wiki-Eintrages nachvollziehbar bleibt:
-
README im Repository
- Kurzer Abschnitt „Installation / Quickstart“
- Verweis auf
quickstart.bat/quickstart.sh - Minimaler manueller Weg als Fallback (venv +
pip install -e .)
-
Kommentare im Skript
- Wichtige Schritte knapp kommentieren („warum“, nicht „was“).
-
Einheitliche Pfade:
- Verwende immer
.venvim Projekt-Root (siehe Pythonprojekt-Standards).
- Verwende immer
-
Keine geheimen Informationen im Skript:
- API-Keys, Passwörter etc. gehören in
.env.
- API-Keys, Passwörter etc. gehören in
-
Fehlertoleranz:
- verständliche Fehlermeldungen ausgeben („Python nicht gefunden“, „Internetverbindung?“).
- Exit-Codes setzen (
exit /b 1`, `exit 1) – wichtig für CI.
-
Idempotenz:
-
.venvnur erstellen, wenn nicht vorhanden. -
uv sync --frozenoder Lock-File nutzen statt „blind“ neu zu installieren.
-
-
Plattform-Checks vermeiden, wo es geht:
- Lieber zwei kleine Skripte (
.bat` + `.sh) als ein riesiges „Cross-Plattform-Monster“.
- Lieber zwei kleine Skripte (
Python nicht im PATH
-
Symptom: Das Skript meldet
python wird nicht erkannt/command not found. -
Lösung:
- Python 3.10+ installieren
- Bei Windows: Installer-Option „Add python.exe to PATH“ aktivieren
- Terminal neu starten, dann Quickstart erneut ausführen.
Fehler bei Paketinstallation
- Prüfen, ob Internetzugang besteht.
- Lock-File evtl. kurz ignorieren:
-
.venvlöschen -
quickstart.bat/.sherneut ausführen
-
- Falls ein bestimmtes Paket Probleme macht, dessen Version in
pyproject.tomlfixieren und Lock-File neu erzeugen.
Anwendung startet, aber findet Module nicht
- Stelle sicher, dass das Paket in
pyproject.tomlmit dem richtigen Namen eingetragen ist (name = "myproject"). - Bei
src/-Layout:tool.setuptools.package-dirkorrekt setzen. - Starte die Anwendung bevorzugt als Modul (
python -m myproject) stattpython src/myproject/main.py.