Подтвердить что ты не робот

Django 1.9 ImportError для import_module

При попытке запустить runserver или shell с помощью manage.py я получаю исключение ImportError. Я использую Django 1.9.

ImportError: No module named 'django.utils.importlib'
4b9b3361

Ответ 1

django.utils.importlib - это библиотека совместимости, когда Python 2.6 все еще поддерживается. Он был устаревшим с Django 1.7, который отказался от поддержки Python 2.6 и удален в 1.9 за цикл устаревания.

Вместо этого используйте функцию Python import_module:

from importlib import import_module

Причина, по которой вы можете импортировать его из django.utils.module_loading, заключается в том, что importlib.import_module импортируется в этом модуле, это не потому, что module_loading каким-либо образом определяет фактическую функцию.

Так как django.utils.module_loading.import_module не является частью общедоступного API, его можно удалить в любое время, если он больше не используется - даже при незначительном обновлении версии.

Ответ 2

Я решил это со следующим:

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