我已经在本地 django 服务器上安装了 django/postgres 并且工作正常。我正在尝试让 Apache 正常工作。我已经设置了 mod_wsgi 并且能够获得“Hello World”,然后重新启动 Apache。我快到了,但是当我打开 localhost/index.html 时,我得到了这个服务器错误:
TemplateSyntaxError: Caught ImproperlyConfigured while rendering:
'django.db.backends.postgresql_psycopg2' isn't an available database
backend.
[Thu Sep 02 13:46:30 2010] [error] [client 127.0.0.1] Try using
django.db.backends.XXX, where XXX is one of:
[Thu Sep 02 13:46:30 2010] [error] [client 127.0.0.1] 'dummy',
'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3'
[Thu Sep 02 13:46:30 2010] [error] [client 127.0.0.1] Error was:
cannot import name utils
mod_wsgi 和 psycopg 版本是否可能不兼容?有没有人尝试过这种类型的设置?
更新1:
我降级到 2.6、mod_wsgi、psycopg2,但在 apache 日志文件中仍然出现此错误。
Fri Sep 03 12:17:41 2010] [错误] [client 97.80.165.181] 文件“C:\Python26\lib\site-packages\django\db\__init__.py”,第 77 行,在 [Fri Sep 03 12 :17:41 2010] [错误] [客户端 97.80.165.181] 连接 = 连接 [DEFAULT_DB_ALIAS] [2010 年 9 月 3 日星期五 12:17:41] [错误] [客户端 97.80.165.181] 文件“C:\Python26\lib\站点包\django\db\utils.py",第 91 行,在getitem[2010 年 9 月 3 日星期五 12:17:41] [错误] [客户端 97.80.165.181] 后端 = load_backend(db['ENGINE']) [2010 年 9 月 3 日星期五 12:17:41] [错误] [客户端 97.80.165.181 ] 文件“C:\Python26\lib\site-packages\django\db\utils.py”,第 49 行,在 load_backend [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] raise ImproperlyConfigured (error_msg) [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] TemplateSyntaxError: Caught ImproperlyConfigured while rendering: 'django.db.backends.postgresql_psycopg2' 不是可用的数据库后端。[Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] 尝试使用 django.db.backends.XXX,其中 XXX 是以下之一:[Fri Sep 03 12:17:41 2010] [error] [客户端 97.80.165.181]
'dummy'、'mysql'、'oracle'、'postgresql'、'postgresql_psycopg2'、'sqlite3' [Fri Sep 03 12:17:41 2010] [error] [client 97.80.165.181] 错误是:无法导入名称 utils
你知道它可能表明什么吗?
更新 2:
原因在文件 django/db/backends/postgresql_psycopg2/base.py,版本 2.2.2,第 9 行:from django.db import utils
但我仍然不知道如何解决这个问题。有一个文件 django/db/utils.py,所以它应该可以工作。毕竟,它适用于开发服务器。但不适用于 Apache + mod_wsgi