Django 1.9 的 ImportError 用于 import_module。

9 浏览
0 Comments

Django 1.9 的 ImportError 用于 import_module。

当尝试使用manage.py运行runservershell时,我会得到一个ImportError异常。我使用的是Django 1.9版本。\nImportError: 没有找到名为\'django.utils.importlib\'的模块。

0
0 Comments

问题:Django 1.9导入import_module时出现ImportError错误

出现原因:在Django 1.9版本中,import_module方法的导入方式发生了改变,导致之前的代码无法正常工作。

解决方法:根据Django的版本,使用不同的导入方式来导入import_module方法。

具体解决方法如下:

try:
    # Django版本大于等于1.9
    from django.utils.module_loading import import_module
except ImportError:
    # Django版本小于1.9
    from django.utils.importlib import import_module

需要将上述代码添加到哪个文件中,并不清楚。根据用户的描述,更新Django版本后出现了问题,可能是由于某个插件(如endless_pagination)的bug导致的。用户还提到安装了django-request来监控流量,并对plugins.py和traffic.py文件进行了更改,解决了问题。

对于用户的问题,上述解决方法应该是一个更安全的解决方案。

0
0 Comments

在Django 1.9中,出现了一个名为"Django 1.9 ImportError for import_module"的问题。这个问题的原因是,之前在Django中使用的django.utils.importlib是一个兼容库,用于支持Python 2.6。但是,自从Django 1.7开始,不再支持Python 2.6,因此这个兼容库已经过时了。在Django 1.9中,根据废弃周期,这个兼容库被移除了。

解决这个问题的方法是使用Python自带的import_module函数,而不再使用django.utils.importlib。可以通过以下方式导入import_module函数:from importlib import import_module

需要注意的是,之所以可以从django.utils.module_loading中导入importlib.import_module,是因为在该模块中已经导入了这个函数,并不是因为module_loading模块本身定义了这个函数。

由于django.utils.module_loading.import_module并不是公共API的一部分,如果这个函数不再使用,它随时可以在任何时间被移除,甚至在一个次要版本升级中。

因此,为了解决"Django 1.9 ImportError for import_module"的问题,我们应该使用Python自带的import_module函数,而不再使用django.utils.importlib

0