【问题标题】:Problem w/Apache2.2+psycopg2.2.2+mod_wsgi on UbuntuUbuntu 上的 Apache2.2+psycopg2.2.2+mod_wsgi 问题
【发布时间】:2011-02-25 22:44:12
【问题描述】:

所以我遇到了与我看到人们在 Windows 上抱怨的其他问题类似的问题,但似乎他们的问题是 Windows 唯一的问题,正在新版本的 psycopg2 中得到修复。

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

[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 而言,我使用了已配置的基本站点,并简单地添加了一行 WSGIScriptAlias 指向我的 wsgi 文件。我什至尝试使用 WSGIDaemonProcess 来定位特定用户(www-data)来运行进程,但这没有任何效果。

感谢任何想法或帮助。

【问题讨论】:

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

标签: apache2 mod-wsgi psycopg2 python-2.6


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 导入后打印输出到日志 sys.modules.keys()。检查是否实际加载了带有 psycopg2 的 C 扩展名 .so。我不记得它应该叫什么名字了,约定它应该是 _pyscopg2 之类的东西。如果未列出,则导入顶级 psycopg2 不足以导入它,并查看是否存在问题。
  • 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 应用程序运行良好,但我的另一个尝试加载后端的应用程序始终失败。 ://
  • 即使将它添加到我的 helloworld 也可以正常工作。 conn = psycopg2.connect("host=127.0.0.1 dbname=testapp user=postgres password=postgres")
猜你喜欢
  • 2014-07-14
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 2011-06-25
  • 2011-03-16
  • 1970-01-01
相关资源
最近更新 更多