aus dem Link Zitiert PEP338
Proposed Semantiken Die vorgeschlagenen Semantik sind ziemlich einfach: Wenn -m verwendet, um ein Modul der PEP 302 import auszuführen Mechanismen zu die verwendet werden, lokalisieren Modul und abrufen Sie seinen kompilierten Code, bevor Sie das Modul in Übereinstimmung mit der Semantik für ein Modul der obersten Ebene ausführen.
Lassen Sie uns nun auf die Dokumentation von imp beziehen (der Importmechanismus) und die verschiedenen Arten von Modulen bestimmen, die imp.get_suffixes()
importiert werden können
imp.get_suffixes() eine Liste von Rück 3-Element Tupel, die jeweils eine bestimmte Art von Modul beschreiben. Jede Dreiergruppe hat die Form (Suffix, Modus, Typ), wobei Suffix eine Zeichenfolge ist, die an den Modulnamen angehängt wird, an Form der Dateiname zu suchen, Modus ist die Moduszeichenfolge, die an das integrierte Öffnen übergeben wird () Funktion zum Öffnen der Datei (dies kann 'r' für Textdateien oder 'rb' für Binärdateien sein) und Typ ist der Dateityp , der einen der Werte PY_SOURCE, PY_COMPILED oder C_EXTENSION, beschrieben hat unten.
und anschließend erklärt sie, was die verschiedenen Typen sind
imp.PY_SOURCE Das Modul als Quelldatei gefunden wurde.
imp.PY_COMPILED Das Modul wurde als kompilierte Code-Objektdatei gefunden.
imp.C_EXTENSION Das Modul wurde als dynamisch ladbare gemeinsame Bibliothek gefunden.
So erwähnt die Typen in PEP 338 sind nichts anderes als die Typen von Modulen, die und von diesen nur PY_SOURCE importiert werden können oder PY_COMPILED sind die einzigen zwei Arten aus dem obigen drei der Befehlszeile effektiv aus Python neu interpretiert -m zu Python.
Es gibt * Arten von Modulen *, da sie aus einer bytecompilierten Cachedatei oder aus einer Quelle stammen. Das Wort * type * ist nicht dasselbe wie die Klasse eines Objekts. –
Siehe über Python-Dateierweiterungen http://Stackoverflow.com/a/18032741/6575931 – Uriel