Es gibt verschiedene Möglichkeiten, Python-Programme zu starten, die sich im Wert von "sys.path", dem Modul-Suchpfad, unterscheiden.
Version v3.8.2 anzeigen
Einfach ausgedrückt
-m angegeben wird, wird das aktuelle Verzeichnis zum ersten Element.Die Zusammenfassung ist wie folgt. Der Autor wusste nicht, dass er Verzeichnisse (Pakete) und ZIP-Dateien starten kann.
pythonArgumente nach |
Was wird gemacht? | Sein Modulname(__name__) |
sys.pathErstes Element von |
|---|---|---|---|
<.py Datei> |
Diese Datei | __main__ |
<Das Verzeichnis, in dem sich die Datei befindet> |
<Verzeichnis> |
<Verzeichnis>/__main__.py |
__main__ |
<Verzeichnis> |
<.zip-Datei> |
.zip-DateiInnerhalb__main__.py |
__main__ |
<.zip-Datei> |
-m <Modul> |
<Modul>.py |
__main__ |
Aktuelles Verzeichnis(Leerer String) |
-m <Paket> |
<Paket>/__main__.py |
__main__ |
Aktuelles Verzeichnis |
-c <Befehl> |
__main__ |
Aktuelles Verzeichnis | |
- |
Skript als Standardeingabe übergeben | __main__ |
Aktuelles Verzeichnis |
-IWenn Sie in den Startoptionen -I angeben, haben Sie -E -s angegeben und der Interpreter startet im ** isolierten Modus **.
Zu diesem Zeitpunkt wird das obige ** erste Element nicht zu sys.path hinzugefügt (aufgrund des Einflusses von -s). ** ** **
Grundsätzlich können Sie also (absolut) nur Module importieren, die mit pip install installiert wurden.
Beachten Sie, dass auch das Modul neben dem Ausführungsskript nicht importiert werden kann [^ 1].
[^ 1]: Das Modul neben dem Ausführungsskript kann nicht relativ dazu importiert werden. Dies liegt daran, dass ein relativer Import aus dem Modul "main" nicht möglich ist.
Recommended Posts