Übung: Erstellen und Verwalten einer Projektdatei
In dieser Übung arbeiten Sie an einem Python-Projekt, das ein Kollege erstellt hat. Sie haben es von GitHub abgerufen und müssen es wiederherstellen, damit Sie damit arbeiten können. Möglicherweise müssen Sie auch Abhängigkeiten upgraden.
Erstellen einer virtuellen Umgebung
Bevor Sie anfangen, erstellen Sie eine virtuelle Umgebung und wechseln in diese. Dadurch erzielen Sie eine Isolation vom Rest Ihres Computers. Ihre Umgebung sollte isoliert sein, damit es keine Auswirkungen auf den Rest des Computers hat, wenn Sie Bibliotheken installieren.
Führen Sie
venv env
aus, um eine virtuelle Umgebung namens env zu erstellen:python -m venv env
Nun sollte das neue Unterverzeichnis env angezeigt werden.
Führen Sie den folgenden Befehl unter Windows aus, um die virtuelle Umgebung zu aktivieren:
C:\ .. \env\Scripts\activate
Oder diesen Befehl unter Linux, WSL oder macOS:
source env/bin/activate
Die Eingabeaufforderung sollte mit
(env)
beginnen, um den Namen der virtuellen Umgebung anzugeben.
Installieren von Abhängigkeiten für ein Projekt
Sie haben Zugriff auf Quellcode und auf die Datei requirements.txt. Die TXT-Datei enthält Bibliotheken, die Sie herunterladen sollten. Sie müssen diese Bibliotheken herunterladen, damit Ihr Programm wie vorgesehen funktioniert.
Erstellen Sie das Verzeichnis src und die erforderlichen Dateien über das Terminal.
Führen Sie unter Windows die folgenden Befehle aus, und zwar eine Zeile nach der anderen:
md src cd src type nul > app.py type nul > requirements.txt
Oder die folgenden Befehle unter Linux, WSL oder macOS, und zwar eine Zeile nach der anderen:
mkdir src cd src touch app.py touch requirements.txt
Dies sind die Dateien:
src/ app.py requirements.txt
Fügen Sie folgenden Inhalt in app.py hinzu:
from datetime import * from dateutil.relativedelta import * now = datetime.now() print(now) now = now + relativedelta(months=1, weeks=1, hour=10) print(now)
Fügen Sie in requirements.txt den folgenden Inhalt hinzu:
python-dateutil==2.8.2 six==1.16.0
Führen Sie
pip install
aus, um die in requirements.txt angegebenen Bibliotheken zu installieren:pip install -r requirements.txt
Daraufhin wird eine Ausgabe mit in etwa folgendem Text angezeigt:
Collecting python-dateutil==2.8.2 Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB) Collecting six==1.16.0 Using cached six-1.16.0-py2.py3-none-any.whl (11 kB) Installing collected packages: six, python-dateutil Successfully installed python-dateutil-2.8.2 six-1.16.0
Glückwunsch! Sie haben erfolgreich ein Projekt wiederhergestellt, das nur Anwendungsdateien und eine Datei requirements.txt enthält.
Upgraden von Paketen
Angenommen, das von Ihnen erstellte Projekt verwendet eine ältere Version der Bibliothek python-dateutil
. Außerdem hat Ihr Team Sie gebeten, nur Fixes zu installieren. Anders ausgedrückt: Das Team möchte, dass Sie die Patchversion aktualisieren, aber kein größeres Update installieren, da dies für Ihre Anwendung riskant sein könnte und möglicherweise ihre Funktion beeinträchtigt.
Sie simulieren zunächst, dass eine frühere Version von python-dateutil
verwendet wird.
Führen Sie
pip install
aus:pip install python-dateutil==2.7.4
Andere Versionen werden deinstalliert, bevor die angegebene Version installiert wird:
Installing collected packages: python-dateutil Attempting uninstall: python-dateutil Found existing installation: python-dateutil 2.8.2 Uninstalling python-dateutil-2.8.2: Successfully uninstalled python-dateutil-2.8.2 Successfully installed python-dateutil-2.7.4
Nun sollten Sie Version 2.7.4 verwenden. Als Nächstes versuchen Sie, ein Upgrade auf die neueste Patchversion durchzuführen.
Führen Sie
pip install --upgrade
aus:pip install "python-dateutil==2.7.*" --upgrade
In der letzten Zeile der Ausgabe sollte „Successfully installed python-dateutil-2.7.5.“ (python-dateutil-2.7.5 wurde erfolgreich installiert) stehen. Dies bedeutet, dass für das Paket anhand der ganz rechts stehende Zahl ein Upgrade durchgeführt wurde.
Glückwunsch! Sie haben Ihre Bibliothek auf verantwortungsvolle Weise aktualisiert.