2012-04-24 4 views
5

Ich habe ein echtes Problem bei der Einrichtung räumliche Datenbank und Synchronisierung mit GeoDjango. Ich konnte die räumliche Datenbank gemäß der geodjango Dokumentation zu installieren und eine django app erstellen, aber wenn ich laufeKann nicht in GeoDjango App SyncDB

python manage.py sqlall world

Ich erhalte diese,

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 

Ich bin müde und wirklich nicht sicher, was ist zu tun? Bitte helfen

EDIT

Ok ich diesen link gefunden, die mich irgendwie sagt, was falsch gelaufen ist. Jetzt, als ich in die python von \ nach Hause kommen, und ich ausführen import psycopg2 es macht mir keinen Import, aber wenn ich in der virtuellen env bin, erhalte ich den Import

(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 

nun der Link führt mich in, wie man fügen Sie den Pfad hinzu, aber ich verstehe den Prozess nicht wirklich, da ich neu bin und ich möchte es nicht weiter vermasseln. So kann mir jemand Schritt für Schritt Anleitung geben, wie man die sys.path anhängen kann ??

+0

können Sie die Datenbanken Wert schreiben auf deiner settings.py? – dannyroa

+0

'DATABASES = { 'Standard': { 'ENGINE': 'django.contrib.gis.db.backends.postgis', # Fügen Sie 'postgresql_psycopg2', 'mysql', 'sqlite3' oder 'oracle' hinzu. 'NAME': 'geodjango', # Oder Pfad zur Datenbankdatei, wenn sqlite3 verwendet wird. 'USER': 'smaranh', # Wird nicht mit sqlite3 verwendet. 'PASSWORD': '', # Wird nicht mit sqlite3 verwendet. 'HOST': '', # Auf leeren String für localhost setzen. Wird nicht mit sqlite3 verwendet. 'PORT': '', # Auf leere Zeichenfolge als Standard festlegen. Wird nicht mit sqlite3 verwendet. } } ' – Sam007

+0

@dannyroa Ich denke, ich habe die Antwort gefunden, nur meine Post bearbeitet, können Sie mir helfen, es zu verstehen und lassen Sie mich wissen, wie ich weiter gehen soll? – Sam007

Antwort

18

Wenn Sie mit virtualenv Sie psycopg2 in der Umgebung installieren müssen, so etwas wie:

pip install psycopg2 

, aber Sie müssen einige Pakete mit apt vorher installieren:

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

also sollte ich zuerst installieren 'sudo apt-get install python-dev postgresql-server-dev-all " und dann installieren ' pip installieren psycopg2' – Sam007

+0

Vielen Dank @ diegueus9, das war wirklich eine große Hilfe – Sam007

+0

@ Sam007 mein Vergnügen – diegueus9

Verwandte Themen