настройка базы данных Postgresql 9.1 в Django для Ubuntu 11.10 - PullRequest
1 голос
/ 20 февраля 2012


Я пытаюсь настроить Postgresql 9.1 в Django 1.3.
Примечание: я делаю это в Ubuntu 11.10 (oneric). Также у меня установлен postgis 1.5 для работы с Postgresql 9.1

Насколько я знаю, я установил все необходимые зависимости.
Я также прочитал инструкции из этого блога.

При выполнении следующих действий:

python manage.py syncdb

Я получаю этот стек ошибок.

Traceback (most recent call last):
  File "manage.py", line 23, in <module>
    execute_manager(settings)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 67, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/usr/local/lib/python2.7/dist-packages/south/management/commands/__init__.py", line 10, in <module>
    import django.template.loaders.app_directories
  File "/usr/local/lib/python2.7/dist-packages/django/template/loaders/app_directories.py", line 23, in <module>
    raise ImproperlyConfigured('ImportError %s: %s' % (app, e.args[0]))
django.core.exceptions.ImproperlyConfigured: ImportError {ProjectName}.{ModuleName}: No module named postgresql.operations

В local_settings.py я установил имя движка как 'django.db.backends.postgresql_psycopg2'.

Однако после обращения к этой я установил имя движка 'django.contrib.gis.db.backends.postgis' и получил следующий стек ошибок:

    Traceback (most recent call last):
  File "manage.py", line 23, in <module>
    execute_manager(settings)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 67, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/usr/local/lib/python2.7/dist-packages/south/management/commands/__init__.py", line 10, in <module>
    import django.template.loaders.app_directories
  File "/usr/local/lib/python2.7/dist-packages/django/template/loaders/app_directories.py", line 21, in <module>
    mod = import_module(app)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/jigish/jigbox/dev/mangrove/datawinners/datawinners/../datawinners/accountmanagement/__init__.py", line 3, in <module>
    from datawinners.accountmanagement.post_registration_events import ngo_user_created
  File "/home/jigish/jigbox/dev/mangrove/datawinners/datawinners/../datawinners/accountmanagement/post_registration_events.py", line 3, in <module>
    from datawinners.accountmanagement.models import NGOUserProfile
  File "/home/jigish/jigbox/dev/mangrove/datawinners/datawinners/../datawinners/accountmanagement/models.py", line 5, in <module>
    from django.db import models
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 78, in <module>
    connection = connections[DEFAULT_DB_ALIAS]
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 51, 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 postgresql.operations

Я даже проверил, у меня установлен postgis (Postgresql-9.1-postgis).

Куда я иду не так? Что мне не хватает? Это мои первые дни работы с Python, Django, Postgresql и Postgis.
Просьба указать любые связанные полезные ссылки в Интернете. Я попробовал Google, но до сих пор не добился успеха.

Спасибо и всего наилучшего

Ответы [ 2 ]

2 голосов
/ 27 декабря 2012

У меня была такая же проблема. Общий источник ошибки, кажется, что psycopg2 не настроен должным образом.

Я считаю эти сообщения полезными:

Невозможно синхронизировать в приложении GeoDjango

Django / Python Beginner: ошибка при выполнении python manage.py syncdb - psycopg2 не найден

ударился головой о настройке и запуске geodjango

1 голос
/ 20 февраля 2012

Вы должны использовать " django.contrib.gis.db.backends.postgis " в качестве бэкэнда, это точно;в соответствии с официальным руководством по установке .

Я думаю, вы можете отправить туда ошибку документации, потому что в документации не упоминается Ubuntu 11.10.

...