


Was sind die Unterschiede beim Aufruf beim Ausführen von Python-Code mit -m?
Oct 22, 2024 pm 09:28 PMAufrufunterschiede 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 Skripte, die ohne -m ausgeführt werden, wird __package__ auf „Keine“ gesetzt, da es sich nicht um Pakete handeln kann.
- Für Module, die mit -m ausgeführt werden und darin enthalten sind Pakete, __package__ wird auf den Namen des Pakets gesetzt.
Für __name__:
- Es verweist auf das Hauptmodul, das beim Ausführen von Skripten erstellt wird.
- Bei Paketen, die mit -m ausgeführt werden, bezieht es sich auf den globalen Namespace, der in sys.modules['__main__'] gespeichert ist. Das Hauptmodul in einem Paket wird ausgeführt, wenn das Paket mit -m ausgeführt wird.
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

So herunterladen Sie Dateien in Python

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?

Einführung des natürlichen Sprach -Toolkits (NLTK)
