2012-04-24 21 views
5

Tengo un problema real al configurar la base de datos espaciales y sincronizarla con GeoDjango. Yo era capaz de configurar la base de datos espacial según la documentación geodjango y crear una aplicación de Django, pero cuando corroNo se puede sincronizar en la aplicación GeoDjango

python manage.py sqlall world

Me estoy haciendo esto,

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 

estoy cansado y realmente no estoy seguro ¿qué hacer? Por favor, ayuda

EDITAR

Ok he encontrado este tipo de link cuales me dice lo que salió mal. Ahora cuando me meto en la python de \ casa, y ejecuto import psycopg2 no me da ninguna ImportError pero cuando estoy en el interior del env virtual, tengo la ImportError

(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 

Ahora el enlace me guía en cómo Adjuntar el camino, pero realmente no estoy entendiendo el proceso ya que soy nuevo y no deseo arruinarlo más. Entonces, ¿alguien me puede guiar paso a paso cómo agregar el sys.path?

+0

Se puede publicar el valor BASES DE DATOS en su settings.py? – dannyroa

+0

'DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.postgis', # Añadir 'postgresql_psycopg2', 'mysql', 'sqlite3' u 'oráculo'. 'NOMBRE': 'geodjango', # O ruta al archivo de base de datos si se usa sqlite3. 'USUARIO': 'smaranh', # No utilizado con sqlite3. 'CONTRASEÑA': '', # No se usa con sqlite3. 'HOST': '', # Establecer en cadena vacía para localhost. No se usa con sqlite3. 'PORT': '', # Establecer en cadena vacía para el valor predeterminado. No se usa con sqlite3. } } ' – Sam007

+0

@dannyroa Creo que encontré la respuesta, simplemente edité mi publicación, ¿podría ayudarme a entenderla y decirme cómo debo continuar? – Sam007

Respuesta

18

Si está utilizando virtualenv necesita instalar psycopg2 dentro del medio ambiente, algo así como:

pip install psycopg2 

pero se necesita instalar algunos paquetes con apt antes de eso:

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

, así que primero debería instalar 'sudo apt-get instale python-dev postgresql-server-dev-all' y luego instale 'pip install psycopg2' – Sam007

+0

Muchas gracias @diegueus9, eso fue realmente una gran ayuda – Sam007

+0

@ Sam007 mi placer – diegueus9

Cuestiones relacionadas