import_module 的 Django 1.9 ImportError

Django 1.9 ImportError for import_module

当尝试使用 manage.py 运行 runservershell 时,我得到一个 ImportError 异常。我正在使用 Django 1.9。

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

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

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

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 不是 public API 的一部分,如果不再使用它可以随时删除 - 即使是在次要版本升级中。