【问题标题】:from django.db import utils ImportError cannot import name utils?from django.db import utils ImportError 无法导入名称 utils?
【发布时间】:2012-08-20 04:43:06
【问题描述】:

我在普通的 python shell 中,尝试导入我的项目模型时出现此错误:

from results.models import TestResult  

Traceback (most recent call last):  
  File "C:\Program Files (x86)\Wing IDE 3.2\src\debug\tserver\_sandbox.py", line 1, in <module>  
    # Used internally for debug sandbox under external interpreter  
  File "C:\Users\audrey_moreau\myProject\results\models.py", line 1, in <module>  
    from django.db import models  
  File "c:\Python27\Lib\site-packages\django\db\__init__.py", line 40, in <module>  
    backend = load_backend(connection.settings_dict['ENGINE'])  
  File "c:\Python27\Lib\site-packages\django\db\__init__.py", line 34, in __getattr__  
    return getattr(connections[DEFAULT_DB_ALIAS], item)  
  File "c:\Python27\Lib\site-packages\django\db\utils.py", line 92, in __getitem__  
    backend = load_backend(db['ENGINE'])  
  File "c:\Python27\Lib\site-packages\django\db\utils.py", line 54, in load_backend  
    return import_module('.base', backend_name)  
  File "c:\Python27\Lib\site-packages\django\utils\importlib.py", line 35, in import_module  
    __import__(name)  
  File "c:\Python27\Lib\site-packages\django\db\backends\sqlite3\base.py", line 14, in <module>  
    from django.db import utils  
ImportError: cannot import name utils

谁能告诉我如何解决这个问题?我正在使用 Python 2.7。

【问题讨论】:

  • 您是否创建了自己的名为“utils”的包或模块,这可能会导致奇怪的冲突?不相信重新安装 Django 是答案,因为它清楚地找到了 django.db.utils 文件。堆栈跟踪显示其执行代码在那里。
  • 你设置好环境了吗?你说你在普通的 python shell 中,但要使用 django 模型,你需要在 django shell 中或配置你的 shell 才能工作。
  • 查看 stackoverflow.com/questions/7866256/django-circular-import-error。

标签: python django python-2.7 importerror


【解决方案1】:

我有这个错误,它是由 django_nose 引起的。我试图从 settings.py 导入 django_nose 以确定它是否存在于系统上,如下所示:

try:
    import django_nose
    INSTALLED_APPS += ['django_nose']
    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
except ImportError:
    pass

我修改为

from imp import find_module
try:
    find_module('django_nose')
    INSTALLED_APPS += ['django_nose']
    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
except ImportError:
    pass

我的问题已经解决了……

【讨论】:

    【解决方案2】:

    我不知道确切的原因,但使用 Django 的 python shell 即 {$./manage.py shell} 不会引发错误。我认为 Django 自己对 python 的包进行了少量定制/覆盖,因此在传统解释器中发生了争执。

    【讨论】:

      【解决方案3】:

      我有同样的错误。卸载并重新安装 django 解决了它:

      sudo pip uninstall django
      sudo pip install django
      

      【讨论】:

        【解决方案4】:

        将 django 添加到您的系统路径。我有一个类似的问题,它对我有用。

        【讨论】:

          猜你喜欢
          • 2022-07-30
          • 2022-12-21
          • 2018-03-11
          • 2012-08-27
          • 1970-01-01
          • 2017-11-13
          • 1970-01-01
          • 1970-01-01
          • 2014-10-28
          相关资源
          最近更新 更多