在Ubuntu上遇到Apache2.2 + psycopg2.2.2 + mod_wsgi的问题

时间:2011-02-25 22:44:12

标签: apache2 mod-wsgi psycopg2 python-2.6

所以我遇到的问题类似于我见过的人在Windows上抱怨的问题,但看起来他们的问题是在新版本的psycopg2中修复了Windows唯一的问题。

基本上,我只是尝试访问我已部署的应用程序,以便在日志中获取以下内容。

[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205] TemplateSyntaxError: Caught ImproperlyConfigured while rendering: 'django.db.backends.postgresql_psycopg2' isn't an available database backend. 
[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205] Try using django.db.backends.XXX, where XXX is one of:
[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205]     'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3'
[Fri Feb 25 16:29:26 2011] [error] [client 5.7.0.205] Error was: cannot import name utils

我似乎已经正确安装了所有内容,使用buildout来检索依赖项等。我还能够成功地对我的数据库运行syncdb,并看到表已经创建。

为什么在处理我将其配置为使用postgresql_psycopg2这一事实时遇到问题?它甚至没有做任何特别的事情。我可以请求“myserver /”或“myserver / admin”或“myserver / whothehellcares”,我不断得到相同的500错误。

就Apache而言,我使用了已配置的基本站点,并简单地添加了指向我的wsgi文件的一行WSGIScriptAlias。我甚至尝试使用WSGIDaemonProcess来定位特定用户(www-data)来运行进程但是没有任何效果。

感谢任何想法或帮助。

1 个答案:

答案 0 :(得分:0)

在非Windows系统上,可能是32位与64位的问题。

创建一个WSGI hello world脚本,如下所述:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

一旦你有hello world脚本工作,在它的开头添加你想要使用的psycopg2模块的导入并验证它是否可以导入。确保您使用的导入强制导入pyscopy2客户端模块的C扩展名.so。

如果失败,您可能会在Apache错误日志中得到更好的错误。 Django有时会掩盖真正的错误。