38

尝试运行runservershell使用时manage.py出现ImportError异常。我正在使用 Django 1.9。

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

2 回答 2

68

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_loadingimportlib.import_module在该模块中导入,而不是因为module_loading以任何方式定义了实际功能。

由于django.utils.module_loading.import_module它不是公共 API 的一部分,因此如果不再使用它,可以随时将其删除 - 即使是在次要版本升级中也是如此。

于 2015-09-24T14:12:40.593 回答
20

我用以下方法解决了这个问题:

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
于 2015-09-24T12:38:50.603 回答