2

我已经在本地 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

4

1 回答 1

1

也许这张票可以帮助您:

或者不管它有什么价值,我已经确认如果我将 python 降级到 2.6,然后同样降级 mod_wsgi 和 psycopg2,Django 将按预期与 Apache 上的 Postgres 一起工作

于 2010-09-03T06:56:37.910 回答