Befehle, Konfiguration und Fehler · Übung
Eine Python-Datei aus dem richtigen Verzeichnis ausführen
Eine Python-Datei kann direkt vor dir liegen, richtig geschrieben sein und sich trotzdem nicht ausführen lassen. In dieser Lektion führst du die bereitgestellte Datei report.py zweimal mit python report.py aus: einmal aus dem Verzeichnis, das sie enthält, und einmal aus einem, das sie nicht enthält.
Bearbeite report.py nicht. Die Lektion behandelt, wie derselbe Dateiname von zwei Arbeitsverzeichnissen aus aufgelöst wird, nicht den Python-Code in der Datei.
Das Terminal neben dieser Lektion folgt deiner Kontoeinstellung. Windows öffnet PowerShell Core, macOS und Linux öffnen Bash. Beide gehosteten Wege nutzen denselben Baum unter /workspace und den von der Übungsumgebung bereitgestellten Starter python.
report.py aus dem Verzeichnis ausführen, das die Datei enthält
Setze den Arbeitsbereich von Kapitel 7 vor der Übung zurück. Das Terminal beginnt in /workspace, und report.py liegt auf dessen oberster Ebene. Eine erfolgreiche Ausführung gibt aus:
Project check: ready
Bestätige vor jeder Ausführung die beiden Fakten, von denen du gleich abhängst: wo du bist und dass die Datei vorhanden ist.
Get-Location
Get-Item -LiteralPath ./report.py
python ./report.py
pwd
ls report.py
python report.py
pwd
ls report.py
python report.py
Auf deinem eigenen Computer kann der Starter py oder python3 heißen. Frage deine Shell, welcher Name dort aufgelöst wird. Die gehostete Übung verwendet bewusst auf beiden Wegen python.
Denselben Dateinamen aus dem falschen Verzeichnis ausführen
Der Befehl python report.py enthält zwei getrennte Suchvorgänge. Zuerst findet und startet die Shell python. Dann sucht Python den relativen Dateinamen report.py im aktuellen Arbeitsverzeichnis.
Von /workspace aus wird dieser Dateiname zu /workspace/report.py aufgelöst. Diese Datei existiert. Von /workspace/data aus wird derselbe Name zu /workspace/data/report.py aufgelöst. Diese Datei existiert nicht. Python meldet den vollständigen Pfad, den es zu öffnen versucht hat.
Das ist der Diagnoseschritt: Vergleiche den fehlgeschlagenen Pfad mit deinem aktuellen Ort und dem bestätigten Ort der Datei, bevor du etwas änderst.
Übung: report.py aus zwei Verzeichnissen ausführen
Dein Ziel ist, python report.py aus /workspace erfolgreich auszuführen, denselben Befehl aus /workspace/data scheitern zu sehen und beide Pfade für Check my work festzuhalten.
Verwende vor dem Beginn Reset, damit das Terminal in /workspace startet und eine alte Datei destination/run-report.txt entfernt wird. Folge dann diesen Schritten:
Bestätige von
/workspaceaus deinen Ort und die bereitgestellte Datei.Tippe
python report.py. Die Ausgabe sollteProject check: readylauten.Wechsle in
dataund bestätige deinen Ort/workspace/data.Tippe erneut
python report.py. Dieser Fehler ist beabsichtigt: Lies den vollständigen Pfad in Pythons Fehlermeldung.Kehre zu
/workspacezurück und tippe noch einmalpython report.py. Es sollte wieder funktionieren.Erstelle mit den folgenden Befehlen für dein Terminal den Nachweis für die Prüfung.
Set-Content -LiteralPath ./destination/run-report.txt -Value 'attempted=/workspace/data/report.py'
Add-Content -LiteralPath ./destination/run-report.txt -Value 'actual=/workspace/report.py'
Get-Content -LiteralPath ./destination/run-report.txt
echo "attempted=/workspace/data/report.py" > destination/run-report.txt
echo "actual=/workspace/report.py" >> destination/run-report.txt
cat destination/run-report.txt
echo "attempted=/workspace/data/report.py" > destination/run-report.txt
echo "actual=/workspace/report.py" >> destination/run-report.txt
cat destination/run-report.txt
Der fertige Nachweis muss genau diese beiden nicht leeren Zeilen enthalten:
attempted=/workspace/data/report.py
actual=/workspace/report.py
Der Nachweis lässt die Prüfung nur dein Ergebnis kontrollieren. Die erfolgreiche und die fehlgeschlagene Ausführung selbst durchzuführen ist die Übung. Lass report.py unverändert und klicke dann auf Check my work.
Eine lernende Person führt aus /workspace/data den Befehl python report.py aus. Python meldet, dass es /workspace/data/report.py nicht öffnen kann. Die Datei liegt tatsächlich unter /workspace/report.py. Welche erste Korrektur ist die kleinste und am besten durch die Hinweise gestützt?
Mit welchem Befehl kannst du report.py von /workspace/data aus ausführen, ohne vorher das Verzeichnis zu wechseln?
Du kannst einen Ausführungsbefehl jetzt durch zwei getrennte Suchvorgänge verfolgen: Die Shell findet den Starter, und der Starter findet die Datei. Fehler haben noch mehr Schichten. Die nächste Lektion ordnet sie.