【问题标题】:Django 1.9 ImportError for import_moduleimport_module 的 Django 1.9 ImportError
【发布时间】:2015-12-22 01:39:54
【问题描述】:

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

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

【问题讨论】:

  • 请注意,Django 1.9 刚刚达到 alpha 状态,不适合生产使用。除非您有充分的理由,否则请使用 1.8。
  • 谢谢丹尼尔。我目前只在本地开发中运行它,它更多的是帮助 Django 团队追踪阻碍稳定发布的问题。
  • Django 1.9 现已发布。

标签: python django django-1.9


【解决方案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
    

    【讨论】:

    • 我可以在哪个文件中编写这段代码?我将 django 从 1.7 更新到 1.9。并停止工作。
    • 看起来像 endend_pagination 或类似的错误
    • 谢谢。我安装了 django-request 来监控流量。我在 plugins.py 和 traffic.py 中进行了您建议的更改,现在一切正常。
    • 你好我只是想问一下文件我应该写这段代码吗?
    • 对我来说更安全的解决方案
    猜你喜欢
    • 2021-06-11
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    相关资源
    最近更新 更多