Beim Versuch, entweder runserver
oder shell
mit manage.py
zu laufen, bekomme ich eine ImportError
Ausnahme. Ich benutze Django 1.9.Django 1.9 ImportError für import_module
ImportError: No module named 'django.utils.importlib'
Beim Versuch, entweder runserver
oder shell
mit manage.py
zu laufen, bekomme ich eine ImportError
Ausnahme. Ich benutze Django 1.9.Django 1.9 ImportError für import_module
ImportError: No module named 'django.utils.importlib'
django.utils.importlib
eine Kompatibilitätsbibliothek für ist, wenn Python 2.6 noch unterstützt wurde. Seit Django 1.7, das die Unterstützung für Python 2.6 verworfen hat, ist es veraltet und wird in 1.9 im Verlauf des Verfallszyklus entfernt.
Verwenden Python import_module
die Funktion statt:
from importlib import import_module
Der Grund, warum Sie es aus django.utils.module_loading
importieren kann, ist, dass importlib.import_module
in diesem Modul importiert wird, ist es nicht weil module_loading
in irgendeiner Weise die eigentliche Funktion definiert.
Da django.utils.module_loading.import_module
nicht Teil der öffentlichen API ist, kann sie jederzeit entfernt werden, wenn sie nicht mehr verwendet wird - selbst in einem kleineren Versionsupgrade.
Danke, ich habe nie realisiert "Importlib" war ein eingebautes Modul! eine gute Lektion, die ich beim nächsten Mal noch vertiefen sollte. – Matt
Ich löste dies mit den folgenden:
try:
# Django versions >= 1.9
from django.utils.module_loading import import_module
except ImportError:
# Django versions < 1.9
from django.utils.importlib import import_module
Beachten Sie, dass Django 1.9 gerade erst den Alpha-Status erreicht hat und nicht für den produktiven Einsatz geeignet ist. Verwenden Sie 1.8, es sei denn, Sie haben einen sehr guten Grund. –
Danke Daniel. Ich betreibe es momentan nur in der lokalen Entwicklung, es ist eher ein Mittel, dem Django-Team zu helfen, Probleme aufzuspüren, die eine stabile Veröffentlichung aufhalten. – Matt
Django 1.9 ist jetzt draußen. – tutuca