新鲜的Django项目中的“ImportError:没有名为dummy的模块”

时间:2009-04-10 23:53:38

标签: python database django sqlite

我已经通过MacOS X 10.5.6上的MacPorts安装了以下内容:

py25-sqlite3 @2.5.4_0 (active)
python25 @2.5.4_1+darwin_9+macosx (active)
sqlite3 @3.6.12_0 (active)

python25被正确设置为我系统的默认Python。

我下载了一份Django 1.1 beta的新副本(我在1.0和trunk中遇到了同样的问题)并安装了“sudo python setup.py install”。

事情似乎通过交互式解释器正确加载:

$ python
Python 2.5.4 (r254:67916, Apr 10 2009, 16:02:52) 
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> import sqlite3
>>> ^D

可是:

$ django-admin.py startproject foo
$ cd foo/
$ python manage.py runserver
Validating models...
Unhandled exception in thread started by <function inner_run at 0x6c1e70>
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/commands/runserver.py", line 48, in inner_run
    self.validate(display_num_errors=True)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 246, in validate
    num_errors = get_validation_errors(s, app)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
    from django.db import models, connection
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/__init__.py", line 22, in <module>
    backend = __import__('%s.base' % settings.DATABASE_ENGINE, {}, {}, [''])
ImportError: No module named dummy.base

如果我将DATABASE_ENGINE中的settings.py更改为“sqlite3”,我会得到以下看似相关的问题:

$ python manage.py runserver

Validating models...
Unhandled exception in thread started by <function inner_run at 0x6c1e70>
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/commands/runserver.py", line 48, in inner_run
    self.validate(display_num_errors=True)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 246, in validate
    num_errors = get_validation_errors(s, app)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
    from django.db import models, connection
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/__init__.py", line 22, in <module>
    backend = __import__('%s.base' % settings.DATABASE_ENGINE, {}, {}, [''])
ImportError: No module named base
^C$ 

我发誓这几天都工作了,我不记得改变任何与Django或Python相关的东西,安装方式。

我的各种Google冒险经历都没有用。那么......有什么想法吗?

修改:'syncdb'提出了相同的例外情况。

7 个答案:

答案 0 :(得分:1)

我在Django Users组中找到了这个thread

他们认为这与MacPorts安装Python的方式有关。我希望我有更多的细节可以帮助您,但作为一种解决方法,我建议您使用MacPorts卸载此Python副本并尝试使用其他方法安装它。如果您正在寻找快速简便的安装方式,可以尝试MacPython。希望这有帮助!

答案 1 :(得分:0)

你尝试过介绍文件吗? doc link

如果你遵循这个文档,你至少可以说,“在步骤XXXX它有错误YYY”。然后有经验的人(不是我)应该能够找到一个好的答案。此链接适用于主干,顶部有1.0个文档的链接。

答案 2 :(得分:0)

呃,我不是在想。跑吧

python manage.py syncdb

这将构建您的数据库,以便您可以运行服务器。

答案 3 :(得分:0)

重新检查您的settings.py。在第二种情况下,看起来您的DATABASE_ENGINE设置为空字符串,而不是'sqlite3'。

答案 4 :(得分:0)

这不是答案,确切地说,但我会尝试删除Django的MacPorts安装并重新开始。然后尝试添加easy_install并使用它来安装所有内容。为了使事情更清晰,更容易重新开始,您可能还需要添加virtualenv,这样可以设置多个自包含的Python环境。

答案 5 :(得分:0)

如果您还没有安装py25-hashlib软件包,也可以尝试安装它。我在django bug tracking site上找到了这个描述。

通常情况下,这个包是python的一部分,但是从我读过的内容来看,它在macports版本中是丢失的还是错误的。

我在pyport-hashlib here的macports版本上找到了更多信息。

答案 6 :(得分:0)

尝试使用python的完整路径以及检查模块路径