Listen Sie den aktuellen Pfad auf
Wenn wir Folgendes deklarieren, können wir den aktuellen Python -Pfad überprüfen:
ImportsystemHier wird das Pprint -Modul nur verwendet, um die Dinge hübsch aussehen zu lassen, sodass Sie diesen Teil ignorieren und sich auf den Rest konzentrieren können. Wir versuchen hier nur, Systeme auszudrucken.Weg.
Das bekommen wir:
Was Sie hier bemerken, ist das vor allem, es ist eine Liste. Laut der Liste wird es zunächst im aktuellen Arbeitsverzeichnis und in anderen Verzeichnissen eins nach dem anderen betrachtet. Das aktuelle Arbeitsverzeichnis ist das Verzeichnis, in dem das Haupt -Python -Skript - das ausgeführt wird - gefunden wird. Darüber hinaus bedeutet dies auch, dass diese Liste geändert oder bearbeitet werden kann.
Hinzufügen eines Pfades
Das System.Weg.append () Methode wird speziell verwendet, um den vorhandenen einen Pfad hinzuzufügen.
Nehmen wir jetzt an, dass ich zwei verschiedene Dateien habe: Haupt.PY und Datei1.py. Hauptsächlich.PY ist die Hauptdatei, und wir werden versuchen, Datei1 zu importieren1.PY (ein Modul, das wir geschrieben haben).
hauptsächlich.py | Datei1.py |
---|---|
Datei importieren1 print (Datei1.Geheimnis) | Geheimnis = "Dies ist der geheime Satz" |
Weil Datei1.PY oder unser Modul befinden sich im Arbeitsverzeichnis. Sie sollten in der Lage sein, den geheimen Satz erfolgreich auszudrucken. Dies geschieht, denn wenn der Python -Interpreter nach dem angeforderten Modul sucht, wird er zuerst im Arbeitsverzeichnis suchen und unser Modul mit dem Namen Datei1 im Arbeitsverzeichnis befindet.
Nehmen wir nun an, dass ich ein Verzeichnis in meinem Arbeitsverzeichnis namens „Directory1“ erstelle und mein Modul namens Datei1 in es platziere.
In der Moduldatei1 befindet sich nun der geheime Satz, den wir ausdrucken versuchen. In diesem Fall wird der geheime Satz nicht ausgedruckt. Warum? Weil der Dolmetscher nicht in "Directory1" nach Modulen sucht. Mit anderen Worten, das aktuelle Arbeitsverzeichnis ist ein Mitglied der Liste der SYS.Pfad aber "Directory1" ist kein Mitglied dieser Liste. Der resultierende Fehler ist also ein modulenotfound -Fehler - er konnte das Modul als Datei1 nicht gefunden oder finden.
Um dieses Problem abzuwenden. Hier ist das System.Weg.append () Methode kommt herein.
Das System.Weg.append () Methode wird verwendet, um den gewünschten Pfad an die vorhandene Liste anzuhängen.
Auf einem Linux -System:
sys.Weg.anhängen ("/path/to/dir")In einem Windows -System würden Sie schreiben:
sys.Weg.append ("c: \\ path \\ to \\ dir"))Bitte beachten Sie, dass Sie SYS keine bestimmte Datei hinzufügen können.Pfad können Sie stattdessen Verzeichnisse hinzufügen und dann die gewünschten Dateien importieren.
Beispiel 1
Versuchen wir also den vorherigen Vorgang (wobei das Datei1 -Modul in Directory1 befindet) erneut.Pfad mit dem sys.Weg.append () Methode.
hauptsächlich.py | Datei1.py |
---|---|
Importsystem sys.Weg.append ('c: \\ user \\ nie \\ pycharmProjects \\ PythonProject1 \\ Directory1 ') Datei importieren1 print (Datei1.Geheimnis) | Geheimnis = "Dies ist der geheime Satz" |
Wenn wir den Pfad mit dem System anhängen.Weg.append () Methode, wir fügen zuerst den Speicherort des Moduls an den Pfad an und importieren es dann. Wenn der Python -Dolmetscher auf diese Weise durchgeführt wird, sollte das angeforderte Modul in der Lage sein und daher die geheime Variable abrufen.
Die Ausgabe des vorherigen Vorgangs ist wie folgt:
Beispiel #2
Nehmen wir ein weiteres Beispiel, diesmal auf einer Linux -Maschine. Nehmen wir an, wir haben eine Datei - Haupt.py.
hauptsächlich.py |
---|
Importsystem von pprint import pprint pprint (sys.Weg) |
Hier, sys.Pfad [0] ist "/home/kalyani", weil dort Haupt.Py befindet sich.
Lassen Sie uns nun das Skript ein wenig ändern, indem wir das SYS verwenden.Weg.append () Methode. Verwenden wir die Methode, um einen bestimmten Pfad ('/home/kalyani/verzeichnis1') an sys anzuhängen.Weg.
hauptsächlich.py |
---|
Importsystem von pprint import pprint sys.Weg.append ('/home/kalyani/directory1') pprint (sys.Weg) |
Also das System.Weg.Die Methode append () hat den Pfad bis zum Ende der vorhandenen Liste angehängt! Bitte beachten Sie hier auch, dass die Anhängerung am Ende der Liste nicht am Anfang erfolgt.
Pythonpath
Es gibt ein kleines Problem mit dem, was wir gerade getan haben, und das ist, dass wir diesen Ort nicht dauerhaft auf das System gelegt haben.Pfadliste. Das System.Weg.append () Methode wird verwendet, um vorübergehend einen Pfad hinzuzufügen, und als solcher wäre dieser Pfad beispielsweise für eine Sitzung gültig. Wenn Sie das System dauerhaft ändern möchten.Pfadliste, dann können wir mit Pythonpath den Pfad zur Liste hinzufügen. Da sys.Der Pfad untersucht auch den Pythonpath. Die aufgeführten Standorte werden dann in der Liste der Pfade enthalten sein.
Unter Linux:
Exportieren Sie Pythonpath = '/path/to/dir' 'Hier können Sie den gewünschten Pfad hinzufügen.
hauptsächlich.py |
---|
Importsystem von pprint import pprint pprint (sys.Weg) |
Beim Schreiben komplexer Programme in Python werden wir schließlich Module von Drittanbietern hinzufügen oder noch besser unsere eigenen Module erstellen. In allen Fällen können wir nicht jede einzelne Python -Datei, die wir in einem Verzeichnis erstellen, aufbewahren. Möglicherweise möchten wir mehrere Verzeichnisse verwenden, um unsere Dateien angemessen zu klassifizieren. Das Problem ist jedoch, dass wir möglicherweise unsere erstellten Module links und rechts importieren müssen. In solchen Fällen können wir den Speicherort des Verzeichnisses hinzufügen - und Sie haben ein Verzeichnis, keine Datei - zu SYS addieren, wenn wir einen Moduenotfound -Fehler verhindern möchten - und Sie müssen ein Verzeichnis sein, nicht um eine Datei -.Pfad mit dem sys.Weg.append () Methode.
Glückliche Codierung!