2012-04-24 20 views
5

我有在建立空間數據庫,並與GeoDjango內置同步一個真正的麻煩來執行syncdb。我是能夠建立空間數據庫爲每GeoDjango內置文檔,並創建一個Django應用程序,但是當我運行無法在GeoDjango內置應用

python manage.py sqlall world

我得到這個,

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/core/management/commands/sqlall.py", line 4, in <module> 
    from django.core.management.sql import sql_all 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/core/management/sql.py", line 6, in <module> 
    from django.db import models 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module> 
    backend = load_backend(connection.settings_dict['ENGINE']) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/db/utils.py", line 92, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/home/smaranh/django-env/local/lib/python2.7/site-packages/django/db/utils.py", line 44, in load_backend 
    raise ImproperlyConfigured(error_msg) 
django.core.exceptions.ImproperlyConfigured: 'django.contrib.gis.db.backends.postgis' isn't an available database backend. 
Try using django.db.backends.XXX, where XXX is one of: 
    'dummy', 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3' 
Error was: No module named psycopg2.extensions 

我累了,真的不知道該怎麼辦?請幫助

編輯

好吧,我發現這個link哪種告訴我什麼地方出了錯。現在,當我進入python從\家裏,和我執行import psycopg2它並沒有給我任何導入錯誤,但是當我在虛擬ENV中,我得到的導入錯誤

(django-env)[email protected]:~/geodjango$ python 
Python 2.7.2+ (default, Oct 4 2011, 20:06:09) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import psycopg2 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named psycopg2 

現在鏈接引導我如何附加的路徑,但我不是真的瞭解這個過程,因爲我是新的,我不想進一步搞砸了。那麼請有人請指導我一步一步的如何追加sys.path

+0

您可以發佈數據庫值在你的settings.py? – dannyroa 2012-04-24 19:33:07

+0

'DATABASES = { 'default':{ 'ENGINE':'django.contrib.gis.db.backends.postgis',#添加'postgresql_psycopg2','mysql','sqlite3'或'oracle'。 'NAME': 'GeoDjango內置',#或者如果使用sqlite3的路徑數據庫文件。 'USER': 'smaranh',#不與sqlite3的使用。 'PASSWORD':'',#不適用於sqlite3。 'HOST':'',#設置爲localhost的空字符串。不與sqlite3一起使用。 'PORT':'',#默認設置爲空字符串。不與sqlite3一起使用。 } }' – Sam007 2012-04-24 19:42:52

+0

@dannyroa我想我找到了答案,只是編輯我的職務,能不能幫我瞭解它,讓我知道我應該如何繼續進行? – Sam007 2012-04-24 19:43:42

回答

18

如果您正在使用的virtualenv你需要安裝環境中psycopg2,是這樣的:

pip install psycopg2 

,但你需要在這之前安裝一些軟件包使用apt:

sudo apt-get install python-dev postgresql-server-dev-all 
+0

所以我應該先安裝 'sudo易於得到安裝python-dev postgresql-server-dev-all' 然後安裝 'pip install psycopg2' – Sam007 2012-04-25 16:26:58

+0

非常感謝@ diegueus9,這真的是一個很大的幫助 – Sam007 2012-04-25 16:32:35

+0

@ Sam007我的樂意 – diegueus9 2012-04-26 03:06:00