我在这里问以下问题,因为它涉及开发人员工具。
我已将 Ubuntu 10.04 LTS 工作站升级到 12.04 LTS(32 位)。今天我去尝试一个 Django Web 应用程序,它一直在没有错误地工作。它在 Apache 上运行。
该应用程序不再工作并返回错误。我一直在解决所有位于/var/log/apache2/error.log
.
第一个错误涉及 UCS2 和 UCS4(为便于阅读而修剪了行)。
ImportError: /usr/local/lib/python2.7/lib-dynload/_io.so:
undefined symbol: PyUnicodeUCS2_FromObject
mod_wsgi (pid=9246): Target WSGI script
'/usr/local/www/wsgi-scripts/wsgi_amr_handler.py'
cannot be loaded as Python module.
通过重建和重新安装最新版本的 mod_wsgi 可以清除这一点。
当前错误涉及 mysqldb 不是有效的后端。这是错误(为清楚起见删除了时间戳):
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 51,
in load_backend
raise ImproperlyConfigured(error_msg)
ImproperlyConfigured: 'mysql' isn't an available database backend.
Try using django.db.backends.mysql instead.
Error was: No module named mysql.base
这是 Django 应用程序的 settings.py 中的配置问题还是其他问题?
是否有 Python 2.7、mod_wsgi、Django 和 mysqldb 的安装顺序,这可能是问题所在吗?
这是我当前的(收到评论后)settings.py
DATABASES = {
'default': {
'ENGINE': ' django.db.backends.mysql',
'NAME': 'server', # Or path to database file if using sqlite3.
'USER': 'ox', # Not used with sqlite3.
'PASSWORD': 'xxxx', # Not used with sqlite3.
'HOST': '',
'PORT': '',
}
}
以下是错误:
ImproperlyConfigured: ' django.db.backends.mysql' isn't an available database backend.
Try using django.db.backends.XXX, where XXX is one of:
'dummy', 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3'
Error was: No module named django.db.backends.mysql.base