Heim > Backend-Entwicklung > Python-Tutorial > Was sind die Hauptunterschiede zwischen „python -m' und „python' für die Ausführung von Python-Modulen?

Was sind die Hauptunterschiede zwischen „python -m' und „python' für die Ausführung von Python-Modulen?

Barbara Streisand
Freigeben: 2024-11-29 22:54:11
Original
946 Leute haben es durchsucht

What are the Key Differences Between `python -m` and `python ` for Executing Python Modules?

Die vielfältige Rolle von „-m“ bei der Python-Befehlszeilenausführung

Es wird häufig beobachtet, dass python -m mymod1 mymod2.py args und python mymod1. py mymod2.py args-Befehle führen beide zur Ausführung von mymod1.py mit einer passenden sys.argv. Der Schalter -m bietet jedoch eine Reihe zusätzlicher Funktionen, die über die Konvertierung von Dateinamen in Modulnamen hinausgehen.

1. Ausführung von Modulen über Modulnamen

Das Flag -m dient als alternative Möglichkeit, Python-Module direkt über die Befehlszeile unter Verwendung ihres Modulnamens anstelle des Dateinamens aufzurufen. Dies ist besonders nützlich für die Ausführung von Standardbibliotheksmodulen oder Paketen von Drittanbietern, deren Dateinamen möglicherweise unbekannt sind. Um beispielsweise das http.server-Modul auszuführen, kann man einfach python -m http.server.

2 eingeben. Integration in sys.path

Die Verwendung des Schalters -m ruft nicht nur das Modul auf, sondern ändert auch sys.path, um das aktuelle Verzeichnis einzuschließen, eine Funktion, die bei Verwendung von Python mymod1.py fehlt. Dies ermöglicht die Ausführung lokaler Pakete, die relative Importe enthalten, ohne dass eine Installation erforderlich ist.

3. Unterstützung für relative Importe

Zusätzlich zum Hinzufügen des aktuellen Verzeichnisses zu sys.path ermöglicht -m die Ausführung von Modulen mit relativen Importen. Dies wird erreicht, indem die Variable __package__ auf das übergeordnete Modul des angegebenen Modulnamens gesetzt wird, wodurch relative Importe wie vorgesehen funktionieren.

Vergleich der Aufrufmethoden

Zur Veranschaulichung der Unterschiede zwischen den 三种n Die wichtigsten Möglichkeiten zum Aufrufen von Python-Modulen finden Sie in der folgenden Tabelle Attribute:

Invocation Method sys.path Modification name package
import None Absolute form of Immediate parent package
python Includes final directory in '__main__' None
python -m Includes current directory '__main__' Immediate parent package

Fazit

Der Schalter -m in Python ist ein vielseitiges Tool, das eine breite Palette von Funktionen bietet, die über die einfache Konvertierung von Dateinamen in Modulnamen hinausgehen. Es bietet eine nahtlose Möglichkeit, Module über die Befehlszeile auszuführen, relative Importe abzuwickeln und lokale Pakete in sys.path zu integrieren. Dies macht es zu einem wertvollen Werkzeug für Entwickler, die sowohl lokal als auch extern mit Python-Modulen arbeiten.

Das obige ist der detaillierte Inhalt vonWas sind die Hauptunterschiede zwischen „python -m' und „python' für die Ausführung von Python-Modulen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage