用于import_module的Django 1.9 ImportError

时间:2015-09-24 12:38:51

标签: python django django-1.9

尝试使用runserver运行shellmanage.py时,我会收到ImportError个异常。我使用的是Django 1.9。

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

2 个答案:

答案 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