Überprüfen des sys.modules
-Wörterbuchs (Dictionary)
In diesem Schritt werden Sie das sys.modules
-Wörterbuch (Dictionary) untersuchen, das ein wesentlicher Bestandteil von Pythons Modulimportsystem ist. sys.modules
ist ein Wörterbuch, das alle Module enthält, die in die aktuelle Python-Sitzung importiert wurden. Das Verständnis dieses Wörterbuchs kann Ihnen helfen, wie Python Module verwaltet.
Um zu beginnen, erstellen wir ein Python-Skript namens check_modules.py
im Verzeichnis ~/project
. Dieses Skript wird das sys
-Modul importieren und die Schlüssel des sys.modules
-Wörterbuchs ausgeben.
## ~/project/check_modules.py
import sys
print("Modules currently in sys.modules:")
for module_name in sys.modules.keys():
print(module_name)
import my_module
print("\nModules after importing my_module:")
for module_name in sys.modules.keys():
print(module_name)
Dieses Skript importiert zunächst das sys
-Modul. Dann durchläuft es die Schlüssel des sys.modules
-Wörterbuchs und gibt jeden Modulnamen aus. Danach importiert es das my_module
, das im vorherigen Schritt erstellt wurde, und gibt das sys.modules
-Wörterbuch erneut aus, um das neu importierte Modul anzuzeigen.
Jetzt führen Sie das Skript mit dem python
-Befehl im Terminal aus:
cd ~/project
python check_modules.py
Sie werden eine Liste von Modulen sehen, die bereits geladen sind, wenn der Python-Interpreter startet, gefolgt von derselben Liste mit my_module
hinzugefügt, nachdem die import my_module
-Anweisung ausgeführt wurde. Die Ausgabe wird in etwa so aussehen (die genaue Liste der Module kann variieren):
Modules currently in sys.modules:
builtins
sys
_frozen_importlib
_imp
_warnings
_io
... (many more modules)
Modules after importing my_module:
builtins
sys
_frozen_importlib
_imp
_warnings
_io
... (many more modules)
my_module
Beachten Sie, dass my_module
nach der import
-Anweisung dem sys.modules
-Wörterbuch hinzugefügt wird. Dieses Wörterbuch fungiert als Cache, sodass, wenn Sie versuchen, dasselbe Modul erneut zu importieren, Python es einfach aus sys.modules
abruft, anstatt es erneut von der Festplatte zu laden. Diese Optimierung verbessert die Leistung.