地理Django同步数据库错误。来自地理Django教程。

5

我已经完美地按照geodjango安装(windows XP)和教程进行了操作,我正在运行django 1.2版本。当我到达syncdb并运行时,我收到以下错误信息。

    raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured:'django.db.backends.postgis' isn
an available database backend.
Try using django.db.backends.XXX, where XXX is one of:
    'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3
Error was: No module named postgis.base

我试图更改为“django.db.backends.postgresql_psycopg2”作为替代方案 但是我收到了以下回复:

AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'

当我尝试使用PostgreSQL:

    **raise ImproperlyConfigured("Error loading psycopg module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: No mo
dule named psycopg**

我成功下载并安装了PostGIS,为什么它不工作?作为新手,我正在努力学习,请帮忙解决问题,不胜感激。


你能确保已经安装了 psycopg 吗? - Manoj Govindan
2个回答

25

问题是,在settings.py文件中。

'django.db.backends.postgis'

应该是这样的

django.contrib.gis.db.backends.postgis

那应该就可以了。


1

在我按照Geodjango网站上的说明并使用Homebrew安装软件包后,我在Mac OS X 10.6上遇到了同样的错误。显然,Geodjango文档提供了一些不正确/过时的安装说明。为了使Geodjango正常工作,我采取了以下几个步骤:

目前,GeoDjango 1.4与PostGIS 2.0不兼容(当我按照GeoDjango文档中的说明操作时,Homebrew安装的就是这个版本)。因此,我需要安装PostGIS 1.5。我使用了以下终端命令进行安装(为了使其正常工作,您必须已经安装了Homebrew):
brew tap homebrew/versions brew install postgis15 brew untap homebrew/versions
PostGIS 1.5与PostGreSQL 9.2不兼容(当我按照Geodjango文档中的说明操作时,Homebrew安装的就是这个版本)。因此,我安装了PostGreSQL 9.1。我忘记了确切的Homebrew命令,但它们应该类似于上一步。
在我的情况下,前面的步骤还不足以使Geodjango正常运行。当我再次尝试在Django中运行'syncdb'时,在终端中发现了一个新错误:
django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: No module named psycopg
最初,我认为我的psycopg2和PostgreSQL9.1副本不在我的PYHTONPATH上,所以我添加了它们。我还调整了一些设置,以确保django正在运行PostgreSQL 9.1而不是9.2。我使用了'initdb /usr/local/var/postgres'。
然后,我需要进行一些数据库配置。我在PostGIS中设置了一个模板,并为数据库设置了一个“角色”(/用户)。为此,我按照Geodjango文档中的说明进行操作。我遇到了许多错误,但很容易在Google上找到解决方案。
然后GeoDjango开始正常工作!

这个来源是我找到的最有帮助的一个,它链接到其他一些有用的网址,更详细地涵盖了其中的一些问题:http://pragmaticstartup.wordpress.com/2012/09/26/installing-django-postgis-postgres-on-os-x-version-hell/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接