尝试使用runserver
运行shell
或manage.py
时,我会收到ImportError
个异常。我使用的是Django 1.9。
ImportError: No module named 'django.utils.importlib'
答案 0 :(得分:61)
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的一部分,因此如果不再使用它,则可以随时将其删除 - 即使在次要版本升级中也是如此。
答案 1 :(得分:21)
我用以下方法解决了这个问题:
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