gpt4 book ai didi

python - 为什么 Django 不再将 mysqldb 视为有效后端?

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:45 24 4
gpt4 key购买 nike

我在这里提出以下问题,因为它涉及开发人员工具。

我已将我的 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

最佳答案

您显然也升级了 Django 安装。最近的 Django 版本需要后端模块的完整名称。在 version 1.2 中更改了指定数据库的方式并且您需要按照升级说明更新您的 Django 项目代码库。

对于 MySQL,正确的后端现在是 django.db.backends.mysql ;打开 settings.py 并更新您的 DATABASES 条目。

关于python - 为什么 Django 不再将 mysqldb 视为有效后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com