Heim >Backend-Entwicklung >Python-Tutorial >Was sind die Unterschiede beim Aufruf beim Ausführen von Python-Code mit -m?
Aufrufunterschiede bei der Ausführung von Python-Code mit -m verstehen
Der Python-Interpreter bietet die Option -m, mit der Sie Bibliotheksmodule ausführen können als Skripte innerhalb des __main__-Moduls. Dieser Ansatz unterscheidet sich von der direkten Ausführung von Skripten ohne die Option -m und führt zu bestimmten Unterschieden und Auswirkungen.
Praktische Unterschiede
Bei Verwendung von -m verwaltet Python Pakete anders. Wenn Sie versuchen, ein Paket ohne -m auszuführen, behandelt der Interpreter es als normales Skript. Im Gegensatz dazu können mit -m Pakete importiert werden und relative Importe berücksichtigen das Paket korrekt als Ausgangspunkt.
Betrachten Sie beispielsweise den folgenden Code in a.py:
<code class="py">if __name__ == "__main__": print(__package__) print(__name__)</code>
Das Ausführen von python a.py führt zu:
None __main__
Während die Verwendung von python -m a Folgendes ergibt:
"" __main__
Hier ist die Variable __package__ im ersten Fall leer, da die Datei leer ist als Skript ausgeführt. Mit -m wird __package__ auf einen leeren String gesetzt, da das Modul nicht innerhalb eines Pakets liegt.
Erklärung von Paket und Name
Für __package__:
Für __name__:
Auswirkungen auf die Paketausführung
Ausführen eines Pakets als Skript mit -m erfordert ein __main__.py-Modul innerhalb des Pakets. Dieses Modul fungiert als Einstiegspunkt, wenn Python das Paket mit dem Schalter -m ausführt.
Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede beim Aufruf beim Ausführen von Python-Code mit -m?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!