django、postgres 8.4、psycopg 2.2.2、python 2.7、mod_wsgi
我已经在本地django服务器上安装了django/postgres,运行良好。我正在努力让Apache工作。我已经设置了mod_wsgi,能够获得一个“helloworld”,并重新启动Apache。我就快到了,但当我打开localhost/index.html时,我发现以下服务器错误:django、postgres 8.4、psycopg 2.2.2、python 2.7、mod_wsgi,python,django,postgresql,mod-wsgi,psycopg,Python,Django,Postgresql,Mod Wsgi,Psycopg,我已经在本地django服务器上安装了django/postgres,运行良好。我正在努力让Apache工作。我已经设置了mod_wsgi,能够获得一个“helloworld”,并重新启动Apache。我就快到了,但当我打开localhost/index.html时,我发现以下服务器错误: TemplateSyntaxError: Caught ImproperlyConfigured while rendering: 'django.db.backends.postgresql_psycop
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日志文件中出现此错误
2010年9月3日星期五12:17:41][错误]
[client 97.80.165.181]文件
“C:\Python26\lib\site packages\django\db\\uuuu init\uuuuu.py”,
第77行,2003年9月5日[星期五]
12:17:41 2010][error][client
97.80.165.181]连接=连接[默认\u DB\u别名][周五至九月
03 12:17:41 2010][error][client
97.80.165.181]文件“C:\Python26\lib\site packages\django\db\utils.py”,
第91行,在获取项目中
12:17:41 2010][error][client
97.80.165.181]后端=加载后端(db[“引擎])[03年9月5日星期五
12:17:41 2010][error][client
97.80.165.181]文件“C:\Python26\lib\site packages\django\db\utils.py”,
第49行,在load_后端[03年9月5日星期五]
12:17:41 2010][error][client
97.80.165.181]提升配置不当(错误消息)[Fri
2010年9月03日12:17:41][错误][客户
97.80.165.181]模板语法错误:在
致使:
'django.db.backends.postgresql_psycopg2'
没有可用的数据库后端。
[2010年9月3日星期五12:17:41][错误]
[client 97.80.165.181]尝试使用
django.db.backends.XXX,其中XXX是
其中之一:[2010年9月3日星期五12:17:41]
[错误][客户端97.80.165.181]“虚拟”、“mysql”、“oracle”, “postgresql”、“postgresql\u psycopg2”, “sqlite3”[Fri Sep 03 12:17:41 2010] [错误][client 97.80.165.181]错误 was:无法导入名称utils 你知道这可能意味着什么吗 更新2: 原因在于文件django/db/backends/postgresql_psycopg2/base.py,版本2.2.2,行号9: 从django.db导入utils 但我仍然不知道如何解决这个问题。 有一个文件django/db/utils.py,所以它应该可以工作。毕竟,它适用于开发服务器。但不适用于Apache+mod_wsgi可能会帮助您: 不管它值多少钱,我都有 确认如果我降级python 至2.6,然后同样降级 莫德·维斯吉和psycopg2,Django将 在Apache上使用Postgres作为 期望
从内存来看,这实际上是由于某个windowc运行时DLL没有像Python那样链接到Apache。psycopg2 C扩展模块中存在依赖于它的内容,由于它缺失,所以会失败。虽然上面的错误很模糊,但它并没有真正指出问题所在。我相信pyscopg2的人已经意识到了这个问题。不确定他们将对此做些什么,但在他们的问题追踪器上有一些最近的活动。但我的记忆可能是错误的,这完全是幻想。如果有人使用Django 1.4.x解决了这个问题。。。尝试升级到Django的最新版本(撰写本文时为1.4.2)。我在2012年使用Django 1.4.1时遇到了类似的错误。我更新到Django 1.4.2并停止获取错误。