2011-02-25 48 views
1

因此,我遇到类似于其他人的问题,我在Windows上看到有人抱怨,但看起来他们的问题是在Windows中修复的唯一问题新版本的psycopg2。Ubuntu上的问题带有Apache2.2 + psycopg2.2.2 + mod_wsgi

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

[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 

我似乎已经正确地安装了所有东西,使用构建来检索依赖关系等。我也能够成功地对我的数据库运行syncdb并查看创建的表。

为什么它遇到问题,我已经配置它使用postgresql_psycopg2?它甚至没有做任何特殊的事情。我可以要求“myserver /”或“myserver/admin”或“myserver/whothehellcares”,并且我经常遇到相同的500错误。

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

任何想法或帮助表示赞赏。

+0

你弄明白了吗?我面临同样的问题 –

回答

0

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

中的说明创建一个WSGI的Hello World脚本:

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

一旦你拥有了世界你好脚本的工作,在开始添加它进口为您希望使用并验证了psycopg2模块它可以被导入。确保您使用的导入强制为pyscopy2客户端模块导入C扩展名.so。

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

+0

Helloworld w/psycopg2导入工作正常。 – Chris

+0

导入后打印出日志sys.modules.keys()。检查带有psycopg2的C扩展名.so是否实际上正在加载。我不记得它应该是什么名字,约定会是_pyscopg2。如果未列出,则导入顶级psycopg2不足以导入它,并查看是否强制执行问题。 –

+0

sys.modules.keys()中没有“.so”扩展名。参考psycopg2是:psycopg2.tz,psycopg2,psycopg2.time,psycopg2.decimal,psycopg2._psycopg,psycopg2.psycopg2,psycopg2.warnings,psycopg2.extensions,psycopg2.datetime,psycopg2.sys。 所以我的helloworld应用程序工作正常,但我的其他应用程序试图加载后端失败一致。 :/ – Chris