Podczas próby uruchomienia runserver
lub shell
przy użyciu manage.py
otrzymuję wyjątek ImportError
. Używam Django 1.9.Django 1.9 ImportError dla import_module
ImportError: No module named 'django.utils.importlib'
Podczas próby uruchomienia runserver
lub shell
przy użyciu manage.py
otrzymuję wyjątek ImportError
. Używam Django 1.9.Django 1.9 ImportError dla import_module
ImportError: No module named 'django.utils.importlib'
django.utils.importlib
jest biblioteką kompatybilność dla Pythona 2.6, gdy był jeszcze obsługiwany. Jest przestarzały, ponieważ Django 1.7, który zrzucił wsparcie dla Pythona 2.6, jest usuwany w 1.9 na cykl wycofania.
użycie Pythona import_module
funkcja zamiast:
from importlib import import_module
Powodem można importować go z django.utils.module_loading
że importlib.import_module
jest importowany w tym module, to nie ponieważ module_loading
w żaden sposób określa rzeczywistą funkcję.
Ponieważ django.utils.module_loading.import_module
nie jest częścią publicznego interfejsu API, można go usunąć w dowolnym momencie, jeśli nie jest już używany - nawet w przypadku niewielkiej aktualizacji.
Dziękuję, nigdy nie zdawałem sobie sprawy, że 'importlib' był modułem wbudowanym! dobra lekcja, której następnym razem powinienem sięgnąć głębiej. – Matt
Rozwiązałem to z następujących powodów:
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
Należy zauważyć, że Django 1.9 osiągnął tylko status alfa i nie nadaje się do użytku produkcyjnego. Użyj 1.8, chyba że masz bardzo dobry powód. –
Dzięki Daniel. W tej chwili używam go tylko do rozwoju lokalnego, to raczej sposób, aby pomóc zespołowi Django w śledzeniu problemów, które spowodują stabilne wydanie. – Matt
Django 1.9 jest już dostępny. – tutuca