ImportError:在Ubuntu 11.04服务器上的django项目中没有名为mysql.base的模块
我正在按照Django书籍中的步骤进行操作,到了作者讲解如何设置Django项目以使用数据库的部分。我选择了mysql。
我在settings.py
中的设置是:
DATABASES = {
'default': {
'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'mydatabase', # Or path to database file if using sqlite3.
'USER': 'myname', # Not used with sqlite3.
'PASSWORD': 'mypassword', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
当我尝试启动服务器时,出现了以下信息:
Validating models...
Traceback (most recent call last):
File "/home/me/workspace/mysite/src/mysite/manage.py", line 14, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 442, in execute_manager
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 67, in handle
self.run(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 78, in run
self.inner_run(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 88, in inner_run
self.validate(display_num_errors=True)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 243, in validate
from django.core.management.validation import get_validation_errors
File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 3, in <module>
from django.contrib.contenttypes.generic import GenericForeignKey, GenericRelation
File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/generic.py", line 7, in <module>
from django.db import connection
File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 27, in <module>
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 81, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 23, in load_backend
return import_module('.base', backend_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named mysql.base
我在网上查了一下,发现这个信息可能是因为你使用了旧版本的MySQLd。所以我确保自己安装了最新版本。然后在一个交互式的Python环境中测试了导入,结果没问题。
还有其他建议吗?为什么这不工作呢?
我是在新安装的Ubuntu 11.04版本上工作(通过Wubi在Windows 7中),如果这有影响的话。=)
1 个回答
18
正确的数据库设置是 'django.db.backends.mysql'
。