Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| howto:git:python_venv [2024/03/28 14:07] – angelegt - Externe Bearbeitung 127.0.0.1 | howto:git:python_venv [2026/08/25 10:07] (aktuell) – Veraltet - Inhalt jetzt unter github.com/BZZ-Commons/pygrader50/docs admin | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== 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 '' | ||
| - | |||
| - | ===== 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 '' | ||
| - | 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. | ||
| - | |||
| - | <file requirements.txt> | ||
| - | 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 | ||
| - | </ | ||