2012-04-24 34 views
5

Tôi đang gặp sự cố thực sự khi thiết lập cơ sở dữ liệu không gian và đồng bộ hóa với GeoDjango. Tôi đã có thể thiết lập cơ sở dữ liệu không gian theo các tài liệu geodjango và tạo ra một ứng dụng django nhưng khi tôi chạyKhông thể syncdb trong GeoDjango App

python manage.py sqlall world

Tôi nhận này,

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 

Tôi mệt mỏi và thực sự không chắc chắn phải làm gì? Xin vui lòng giúp

EDIT

Ok tôi thấy link này mà loại nói với tôi những gì đã xảy ra. Bây giờ khi tôi nhận được vào python từ \ nhà, và tôi thực hiện import psycopg2 nó không cho tôi bất kỳ ImportError nhưng khi tôi bên trong env ảo, tôi nhận được 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 

Bây giờ vào liên kết hướng dẫn cho tôi làm thế nào để nối thêm đường dẫn nhưng tôi không thực sự hiểu được quá trình kể từ khi tôi mới và tôi không muốn vít thêm nó. Vì vậy, ai đó có thể xin hướng dẫn tôi từng bước làm thế nào để nối thêm sys.path ??

+0

Bạn có thể gửi giá trị CƠ SỞ DỮ LIỆU trên settings.py của bạn? – dannyroa

+0

'DATABASES = { 'mặc định': { 'ĐỘNG CƠ': 'django.contrib.gis.db.backends.postgis', # Thêm 'postgresql_psycopg2', 'mysql', 'sqlite3' hoặc 'oracle'. 'NAME': 'geodjango', # Hoặc đường dẫn đến tệp cơ sở dữ liệu nếu sử dụng sqlite3. 'USER': 'smaranh', # Không được sử dụng với sqlite3. 'PASSWORD': '', # Không được sử dụng với sqlite3. 'HOST': '', # Đặt thành chuỗi rỗng cho localhost. Không được sử dụng với sqlite3. 'PORT': '', # Đặt thành chuỗi trống theo mặc định. Không được sử dụng với sqlite3. } } ' – Sam007

+0

@dannyroa Tôi nghĩ rằng tôi đã tìm thấy câu trả lời, chỉ cần chỉnh sửa bài đăng của tôi, bạn có thể giúp tôi hiểu nó và cho tôi biết làm thế nào tôi nên tiếp tục? – Sam007

Trả lời

18

Nếu bạn đang sử dụng virtualenv bạn cần cài đặt psycopg2 bên trong môi trường, một cái gì đó như:

pip install psycopg2 

nhưng bạn cần phải cài đặt một số gói với apt trước đó:

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

vì vậy trước tiên tôi nên cài đặt 'sudo apt-get cài đặt python-dev postgresql-server-dev-all' và sau đó cài đặt 'pip install psycopg2' – Sam007

+0

Cảm ơn rất nhiều @ diegueus9, đó thực sự là một trợ giúp lớn – Sam007

+0

@ Sam007 niềm vui của tôi – diegueus9