django,postgres 8.4,psycopg 2.2.2,python 2.7,mod_wsgi

时间:2010-09-03 04:46:29

标签: python django postgresql mod-wsgi psycopg

我在本地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日志文件中出现此错误。

  

Sep Jul 03 12:17:41 2010] [错误]   [客户端97.80.165.181]文件   “C:\ Python26 \ LIB \站点包\ Django的\ DB \ __ init__.py”   第77行,[03年9月5日   2010年12:17:41] [错误] [客户   97.80.165.181] connection = connections [DEFAULT_DB_ALIAS] [Fri Sep   03 12:17:41 2010] [错误] [客户   97.80.165.181]文件“C:\ Python26 \ lib \ site-packages \ django \ db \ utils.py”,   第91行, getitem [Fri Sep 03   2010年12:17:41] [错误] [客户   97.80.165.181] backend = load_backend(db ['ENGINE'])[Fri Sep 03   2010年12:17:41] [错误] [客户   97.80.165.181]文件“C:\ Python26 \ lib \ site-packages \ django \ db \ utils.py”,   第49行,在load_backend [Fri Sep 03   2010年12:17:41] [错误] [客户   97.80.165.181]提出不正确的配置(error_msg)[星期五   Sep 03 12:17:41 2010] [错误] [客户   97.80.165.181] TemplateSyntaxError:陷入不正确的配置时   渲染:   'django.db.backends.postgresql_psycopg2'   不是可用的数据库后端。   [Fri Sep 03 12:17:41 2010] [错误]   [client 97.80.165.181]尝试使用   django.db.backends.XXX,其中XXX是   其中之一:[Fri Sep 03 12:17:41 2010]   [错误] [客户97.80.165.181]
  'dummy','mysql','oracle',   'postgresql','postgresql_psycopg2',   'sqlite3'[2010年9月3日星期五12:17:41]   [错误] [客户端97.80.165.181]错误   是:无法导入名称utils

你知道它可能表明什么吗?

更新2:

原因在于文件django / db / backends / postgresql_psycopg2 / base.py,版本2.2.2,第9行: 来自django.db import utils

但我仍然不知道如何解决这个问题。 有一个文件django / db / utils.py,所以它应该工作。毕竟它适用于开发服务器。但不适用于Apache + mod_wsgi

1 个答案:

答案 0 :(得分:1)

也许this Ticket会帮助你:

  

或者不值得,我有   确认如果我降级python   到2.6然后同样降级   mod_wsgi和psycopg2,Django会   与Apache上的Postgres一起工作   预期