Heim Backend-Entwicklung Python-Tutorial Was sind die Unterschiede beim Aufruf beim Ausführen von Python-Code mit -m?

Was sind die Unterschiede beim Aufruf beim Ausführen von Python-Code mit -m?

Oct 22, 2024 pm 09:28 PM

What are the Differences in Invocation when Executing Python Code with -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>
Nach dem Login kopieren

Das Ausführen von python a.py führt zu:

None
__main__
Nach dem Login kopieren

Während die Verwendung von python -m a Folgendes ergibt:

""
__main__
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie benutze ich eine schöne Suppe, um HTML zu analysieren? Wie benutze ich eine schöne Suppe, um HTML zu analysieren? Mar 10, 2025 pm 06:54 PM

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

Bildfilterung in Python Bildfilterung in Python Mar 03, 2025 am 09:44 AM

Bildfilterung in Python

So herunterladen Sie Dateien in Python So herunterladen Sie Dateien in Python Mar 01, 2025 am 10:03 AM

So herunterladen Sie Dateien in Python

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden Mar 05, 2025 am 09:58 AM

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

Wie man mit PDF -Dokumenten mit Python arbeitet Wie man mit PDF -Dokumenten mit Python arbeitet Mar 02, 2025 am 09:54 AM

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen Wie kann man mit Redis in Django -Anwendungen zwischenstrichen Mar 02, 2025 am 10:10 AM

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch? Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch? Mar 10, 2025 pm 06:52 PM

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

Einführung des natürlichen Sprach -Toolkits (NLTK) Einführung des natürlichen Sprach -Toolkits (NLTK) Mar 01, 2025 am 10:05 AM

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

See all articles