git und Python venv
Situation
Das Virtual Environment (venv) eines Pythonprojekts sollte nicht in git integriert werden und damit auch nicht auf GitHub hochgeladen werden. Der Grund ist, dass teilweise absolute Systempfade enthalten sind. Wenn jemand das Repo klont, werden diese Pfade unter Umständen nicht übereinstimmen.
Am einfachsten trägt man den Ordner venv
in .gitignore ein.
Problem
Wenn ich das Projekt meinen Lernenden (z.B. im Classroom) bereit stelle, fehlen alle externen Pakete und Abhängigkeiten. Diese muss der Lernende selber wieder installieren.
Lösung
Ich erstelle in jedem Projekt eine Datei requirements.txt mit den Abhängigkeiten dieses Projekts. Im Terminal von PyCharm (nicht Python Console) gebe ich den Befehl ein:
pip3 freeze > requirements.txt
Diese Datei wird nun mit Git ⇒ Add
ins Repo aufgenommen.
Wenn jemand das Repo klont, wird er von PyCharm gefragt, ob er anhand dieser Datei ein Virtual Environment erzeugen möchte.
1x [OK] klicken und nach wenigen Momenten hat man das venv und alle benötigten Pakete.
Beispiel
Diese Datei enthält die Abhängigkeiten für einfache Pythonprogramme mit PyTest. Du kannst Sie herunterladen und ins Git(Hub)-Repo einfügen.
attrs==22.1.0 colorama==0.4.6 exceptiongroup==1.0.0 iniconfig==1.1.1 packaging==21.3 pluggy==1.0.0 pyparsing==3.0.9 pytest==7.2.0 tomli==2.0.1