Heim > Backend-Entwicklung > Python-Tutorial > Was bewirkt der Schalter „-m' in Python?

Was bewirkt der Schalter „-m' in Python?

Barbara Streisand
Freigeben: 2024-11-29 03:15:10
Original
750 Leute haben es durchsucht

What Does the `-m` Switch Do in Python?

Welche Rolle spielt der -m-Schalter?

Einführung

Der -m Die Option erweitert die Fähigkeiten von Python und ermöglicht Vielseitigkeit bei der Modulausführung und -entwicklung. Es erfüllt drei Hauptaufgaben:

1. Modulausführung nach Modulname

python -m bietet eine Alternative zu Python zur Ausführung von Modulen. Es basiert auf der Fähigkeit von Python, Modulnamen Dateinamen zuzuordnen, was die Ausführung von Modulen erleichtert, ohne deren genauen Speicherort zu kennen.

2. Verbesserte Modulpfadauflösung

Bei Verwendung von -m wird das aktuelle Arbeitsverzeichnis zu sys.path hinzugefügt. Dadurch können Module aus dem aktuellen Verzeichnis importiert werden, sodass lokale Pakete ausgeführt werden können, ohne dass eine Installation erforderlich ist.

3. Unterstützung für relative und absolute Importe

-m verarbeitet sowohl absolute als auch relative Importe beim Ausführen von Modulen. Dadurch können Entwickler Importe auf die gleiche Weise verwenden, unabhängig davon, ob ein Modul über die Befehlszeile oder über eine Importanweisung ausgeführt wird.

Historische Entwicklung

Anfänglich - m unterstützte nur Modulnamen der obersten Ebene. Mit PEP 338 wurde es um Submodule und die Initialisierung übergeordneter Pakete erweitert. Schließlich führte PEP 366 die Unterstützung für explizite relative Importe ein.

Anwendungsfälle

-m zeichnet sich in zwei Szenarien aus:

  • Ausführen von Modulen mit unbekannte Dateinamen (z. B. Standardbibliothek oder Module von Drittanbietern).
  • Lokale Pakete ausführen mit absoluten oder relativen Importen ohne Installation (erreicht durch Hinzufügen des aktuellen Verzeichnisses zu sys.path).

Einschränkungen

-m hat eine wesentliche Einschränkung: es kann nur Python-Codemodule (*.py) ausführen. C-kompilierte Codemodule werden mit -m nicht erfolgreich ausgeführt.

Vergleiche mit anderen Modulausführungsmethoden

Import-AnweisungAktuell Verzeichnis tr>
Ausführungsmethode sys.path-Änderung
Execution Method sys.path Modification name Setting package Setting init Evaluation main Evaluation
Import Statement No change Absolute modulename Parent package Yes (packages only) No (packages only)
Command Line with Filename Final directory of filename '__main__' None No (all modules) Yes (package modules)
Command Line with Modulename (-m) Current directory '__main__' Parent package Yes (packages only) Yes (package modules)
NameEinstellung
Paket Einstellung initAuswertung mainAuswertung
Keine Änderung Absoluter Modulname Übergeordnetes Paket Ja (nur Pakete) Nein (Pakete nur)
Befehlszeile mit Dateiname Endverzeichnis des Dateinamens '__main__' Keine Nein (alle Module) Ja (Paketmodule)
Befehlszeile mit Modulname (-m)'__main__' Übergeordnetes Paket Ja (nur Pakete) Ja (Paketmodule)

Fazit

Der Schalter -m gibt Entwicklern ein vielseitiges Tool für die Modulausführung und -entwicklung an die Hand. Es bietet Flexibilität bei der Modulsuche, unterstützt die dynamische Pfadauflösung und erleichtert die nahtlose Ausführung von komplexem Python-Code.

Das obige ist der detaillierte Inhalt vonWas bewirkt der Schalter „-m' in Python?. 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