Не удалось синхронизировать базу данных в приложении GeoDjango

У меня возникли проблемы с настройкой пространственной базы данных и ее синхронизацией с GeoDjango. Мне удалось настроить пространственную базу данных в соответствии с документацией geodjango и создать приложение django, но когда я запускаю

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

Я устал и действительно не знаю, что делать? Пожалуйста помоги

ИЗМЕНИТЬ

Хорошо, я нашел эту ссылку, которая как бы подсказывает мне, что пошло не так. Теперь, когда я захожу в python из \home и выполняю import psycopg2, это не дает мне ImportError, но когда я нахожусь внутри виртуальной среды, я получаю ImportError

(django-env)smaranh@ubuntu:~/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 ??


person Sam007    schedule 24.04.2012    source источник
comment
Можете ли вы опубликовать значение DATABASES в файле settings.py?   -  person dannyroa    schedule 24.04.2012
comment
@dannyroa Я думаю, что нашел ответ, только что отредактировал свой пост, не могли бы вы помочь мне понять его и сообщить, как мне действовать дальше?   -  person Sam007    schedule 24.04.2012
comment
ответ diegueus9 ниже должен работать. Однако вы можете столкнуться с проблемой при установке на Mac. См. stackoverflow.com/questions/5944332/   -  person dannyroa    schedule 25.04.2012


Ответы (1)


Если вы используете virtualenv, вам нужно установить psycopg2 внутри среды, например:

pip install psycopg2 

но перед этим вам нужно установить несколько пакетов с apt:

sudo apt-get install python-dev postgresql-server-dev-all
person diegueus9    schedule 24.04.2012
comment
поэтому я должен сначала установить sudo apt-get install python-dev postgresql-server-dev-all, а затем установить pip install psycopg2 - person Sam007; 25.04.2012
comment
Большое спасибо @diegueus9, это действительно очень помогло. - person Sam007; 25.04.2012