Python pip virtualenv: So verwaltest du deine Projekte richtig
Pakete installieren, Umgebungen isolieren: So verwalten Azubis, Studenten und Berufseinsteiger Python-Projekte mit pip und virtualenv.
By Marcel Schmidtpeter 04 Oct 2026
Du installierst ein Python-Paket für dein aktuelles Projekt - und plötzlich wirft ein anderes Projekt Fehler, das gestern noch lief. Diesen Moment kennt jede und jeder von uns: in der Berufsschule beim ersten eigenen Projekt, im Studium bei der Gruppenarbeit oder in der Firma, wenn du auf einen fremden Rechner losgelassen wirst. Die Lösung heißt virtuelle Umgebung. In diesem Artikel lernst du, wie du mit `pip` und `virtualenv` deine Python-Projekte sauber getrennt hältst. Am Ende kannst du ein Projekt komplett neu aufsetzen und mit einer `requirements.txt` an andere weitergeben.
Was du für dieses Tutorial brauchst
Du brauchst drei Dinge:
Python 3 (ab Version 3.3, besser 3.10 oder neuer) - prüfe das mit `python --version` oder `python3 --version` im Terminal. Den Installer findest du auf python.org
Grundlagen im Umgang mit dem Terminal (Ordner wechseln mit `cd`, Befehle ausführen)
Etwa 15 Minuten Zeit
Vorkenntnisse in Python selbst brauchst du nicht - wir arbeiten hauptsächlich auf der Kommandozeile.
Was ist pip?
pip ist der Paketmanager von Python. Er lädt fertige Software-Pakete (sogenannte Bibliotheken oder Packages) aus dem Internet herunter und installiert sie auf deinem Rechner. Die zentrale Anlaufstelle dafür ist PyPI, der *Python Package Index* unter pypi.org - ein riesiges Verzeichnis mit über 500.000 Paketen.
Stell dir pip wie den App Store deines Handys vor: Du suchst dir eine Funktion aus, tippst einen Befehl, und der Rest passiert automatisch. Die offizielle Dokumentation findest du unter pip.pypa.io.
Merke: pip installiert Python-Pakete von PyPI. Ohne pip kommst du an keine externen Bibliotheken wie `requests`, `numpy` oder `flask`.
Was ist ein virtualenv - und warum brauchst du ihn?
Ein virtualenv (virtuelle Umgebung) ist eine abgeschlossene, eigenständige Python-Installation inklusive eigener Pakete für genau ein Projekt. Pakete, die du darin installierst, landen nur in dieser Umgebung - nicht global auf deinem System.
Warum? Weil verschiedene Projekte oft verschiedene Versionen desselben Pakets brauchen. Projekt A läuft mit `requests 2.25`, Projekt B braucht `2.31`. In einer globalen Installation überschreibt dir das eine das andere. Stell dir vor, alle Handwerker auf der Baustelle müssten sich eine einzige Werkzeugkiste teilen - Chaos. Ein virtualenv gibt jedem Projekt seine eigene Kiste.
Merke: Eine virtuelle Umgebung pro Projekt = keine Versionskonflikte. Das ist kein optionaler Luxus, sondern Standard in der Praxis.
Schritt 1: Virtuelle Umgebung erstellen
Es gibt zwei Wege: das eingebaute Modul venv (in Python enthalten, seit Version 3.3, Doku) oder das externe Tool virtualenv (Doku). Für den Einstieg reicht `venv` völlig - die Arbeitsschritte sind fast identisch.
Öffne dein Terminal, wechsle in deinen Projektordner und führe aus:
cd C:\Projekte\webseiten-checker
# Variante 1: eingebautes venv (Empfehlung fuer Einsteiger)
python -m venv venv
# Variante 2: externes virtualenv (vorher: pip install virtualenv)
virtualenv venvPython erstellt jetzt einen Ordner namens `venv` mit einer eigenen Python-Interpreter-Kopie, einem `Scripts`-Ordner (unter Windows) bzw. `bin`-Ordner (macOS/Linux) und einem Ordner für Pakete. Diesen Ordner legst du einmal pro Projekt an.
Schritt 2: Virtualenv aktivieren
Erstellen allein reicht nicht - du musst die Umgebung aktivieren, damit dein Terminal sie benutzt:
# Windows (Eingabeaufforderung)
venv\Scripts\activate
# Windows (PowerShell)
venv\Scripts\Activate.ps1
# macOS und Linux
source venv/bin/activateDie Aktivierung erkennst du am geänderten Prompt: Er beginnt jetzt mit `(venv)`. Solange das da steht, beziehen sich `python` und `pip` nur auf diese eine Umgebung.
Die Umgebung verlässt du jederzeit mit:
deactivateSchritt 3: Pakete mit pip installieren
Nach der Aktivierung installierst du Pakete in die Umgebung - zum Beispiel `requests` für HTTP-Anfragen:
pip install requestsZur Kontrolle, ob alles im virtualenv gelandet ist:
pip show requestsEin Tipp aus der Praxis: Ein frisch erstelltes virtualenv bringt manchmal eine ältere pip-Version mit. Mit `python -m pip install --upgrade pip` holst du sie auf den aktuellen Stand.
Die wichtigsten pip-Befehle im Überblick:
Befehl | Wirkung |
`pip install requests` | Installiert das neueste Paket |
`pip install requests==2.31.0` | Installiert eine bestimmte Version |
`pip list` | Zeigt alle installierten Pakete |
`pip freeze` | Listet Pakete als `paket==version` |
`pip install -r requirements.txt` | Installiert alles aus einer Datei |
`pip uninstall requests` | Deinstalliert ein Paket |
Schritt 4: requirements.txt erstellen und nutzen
Die requirements.txt ist eine simple Textdatei, in der alle Pakete mit exakter Version stehen. Sie ist dein Einkaufszettel, damit andere (oder du selbst auf einem neuen Rechner) das Projekt exakt nachbauen können:
pip freeze > requirements.txtDas erzeugt eine Datei wie diese:
certifi==2024.2.2
charset-normalizer==3.3.2
requests==2.31.0
urllib3==2.2.1Wer dein Projekt später startet, lädt alles mit einem einzigen Befehl:
pip install -r requirements.txtWarum das wichtig ist? Ob Berufsschulprojekt, Uni-Abgabe oder Onboarding in der Firma: Ohne `requirements.txt` rät jeder Beteiligte, welche Versionen du hattest - und genau das produziert die Fehler von ganz oben.
Merke: `pip freeze > requirements.txt` gehört ans Ende jeder Installationsrunde. Nur so bleibt dein Projekt auf jedem Rechner identisch nachbaubar.
Komplettes Beispiel: Von null zum lauffähigen Projekt
Alle Schritte zusammen - der komplette Ablauf auf der Konsole:
# 1. Projektordner anlegen und hineinwechseln
mkdir webseiten-checker
cd webseiten-checker
# 2. Virtuelle Umgebung erstellen
python -m venv venv
# 3. Aktivieren
source venv/bin/activate # macOS / Linux
# venv\Scripts\activate # Windows
# 4. Paket installieren und merken
pip install requests
pip freeze > requirements.txt
# 5. Skript ausfuehren
python webseiten_check.py
# 6. Fertig - Umgebung verlassen
deactivateDazu das passende Skript `webseiten_check.py` (das try/except kennst du vielleicht aus unserem Artikel zu Python Exception Handling):
import requests
def pruefe_webseite(url):
try:
antwort = requests.get(url, timeout=5)
print(f"{url} antwortet mit Status {antwort.status_code}")
except requests.RequestException as fehler:
print(f"Fehler bei {url}: {fehler}")
if __name__ == "__main__":
pruefe_webseite("https://www.python.org")Läuft das Skript ohne `ModuleNotFoundError`, hast du alles richtig gemacht: requests wurde nur im virtualenv installiert, und genau dort führst du das Skript auch aus.
Häufige Probleme und Lösungen
Problem 1: PowerShell blockiert die Aktivierung. Die Meldung *"running scripts is disabled on this system"* bedeutet, dass Windows PowerShell standardmäßig keine Skripte ausführt. Einmalig beheben kannst du das mit:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserProblem 2: ModuleNotFoundError trotz Installation. Fast immer bist du in der falschen Umgebung: Du hast `pip install` global (ohne aktives venv) ausgeführt oder das Terminal neu geöffnet und vergessen zu aktivieren. Prüfe mit `pip show paketname` oder `which python` (macOS/Linux) bzw. `where python` (Windows), wo Python gerade herkommt.
Problem 3: `python` funktioniert nicht. Auf macOS und Linux heißt der Befehl oft `python3`. Unter Windows hilft der py Launcher: `py -m venv venv` funktioniert immer, egal wie Python installiert wurde.
FAQ
venv oder virtualenv - was soll ich nutzen?
Beide machen dasselbe: isolierte Umgebungen. `venv` ist in Python eingebaut und reicht für den Alltag. `virtualenv` ist ein externes pip-Paket, etwas schneller und flexibler bei Python-Versionen. Für Einsteiger: nimm `venv`, weil du nichts installieren musst.
Woher weiß ich, welche Pakete gerade installiert sind?
Mit `pip list` siehst du alle Pakete der aktiven Umgebung. Ist kein virtualenv aktiv, siehst du die globalen Pakete - ein guter Test, ob du vergessen hast zu aktivieren.
Gehört der venv-Ordner ins Git-Repository?
Nein. Der Ordner enthält Binärdateien und ist auf jedem Rechner neu erstellbar. Nimm ihn in die `.gitignore` auf und commite stattdessen die `requirements.txt` - daraus kann jeder den venv exakt rekonstruieren.
Was ist der Unterschied zwischen pip install und pip freeze?
`pip install` holt Pakete, `pip freeze` listet bereits installierte Pakete samt Version auf. Die Kombination `pip freeze > requirements.txt` ist der Standard-Weg, Projekte reproduzierbar zu machen.
Kann ich mehrere virtualenvs gleichzeitig benutzen?
Ja - pro Terminal-Fenster genau eine. Du öffnest zwei Terminals, aktivierst in jedem einen anderen venv, und beide Projekte laufen parallel mit ihren eigenen Versionen.
Fazit
Pakete global zu installieren ist der schnellste Weg zu kaputten Projekten. Mit pip holst du dir Pakete, mit einem virtualenv hältst du jedes Python-Projekt sauber getrennt, und die requirements.txt macht das Ganze reproduzierbar. Dieser Workflow zieht sich durch Berufsschule, Studium und Berufsalltag - wer ihn beherrscht, spart sich Stunden an Frust. Später begegnen dir dann auch modernere Tools wie Poetry oder uv - aber deren Fundament ist genau der pip-Workflow, den du hier gelernt hast.
Wenn du bei Python-Themen wie Paketverwaltung, OOP oder Fehlerbehandlung gerade vor einer Wand stehst: Genau dafür gibt es individuelle Nachhilfe bei study-it.education. Wir holen dich dort ab, wo du gerade stehst - ob Azubi, Student oder Quereinsteiger. Schau vorbei und vereinbare deine erste Stunde.
Need someone to walk through this with you?
Instead of re-reading: 30 min with a senior dev.
Book a free first chat →
Pakete installieren, Umgebungen isolieren: So verwalten Azubis, Studenten und Berufseinsteiger Python-Projekte mit pip und virtualenv.
marcel.schmidtpeter@study-it.education →More reading
Python HTTP requests senden: GET, POST & mehr mit requests
So sendest du mit der Python-Bibliothek requests GET- und POST-Anfragen an APIs – mit Beispielen für Azubis, Studenten und Berufseinsteiger.
Python JSON verarbeiten mit dem -Modul – einfach erklärt
JSON in Python lesen und schreiben? Das -Modul macht's einfach – von .loads bis .dumps, hier lernst du alles Wichtige.
Python Datenbank verbinden: sqlite3 & SQLAlchemy einfach erklärt
Erfahre, wie du Python per sqlite3 oder SQLAlchemy mit Datenbanken verbindest – mit Praxisbeispielen für Azubis, Studenten & Berufseinsteiger.