2010-08-25 46 views
5

Tôi đã theo cài đặt geodjango (windows XP) và hướng dẫn hoàn thiện Tôi đang chạy django 1.2 Khi tôi nhận được để syncdb và chạy tôi nhận được sau đây.lỗi synodb geodjango. Từ hướng dẫn geodjango

raise ImproperlyConfigured(error_msg) 
django.core.exceptions.ImproperlyConfigured:'django.db.backends.postgis' isn 
an available database backend. 
Try using django.db.backends.XXX, where XXX is one of: 
    'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3 
Error was: No module named postgis.base 

tôi đã cố gắng thay đổi để 'django.db.backends.postgresql_psycopg2' như một sự thay thế Nhưng sau đó tôi nhận được câu trả lời này:

AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type' 

Khi tôi cố gắng posgresql:

**raise ImproperlyConfigured("Error loading psycopg module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: No mo 
dule named psycopg** 

Có phải không giả sử d để được postgis mà tôi thành công tải về và cài đặt? tại sao nó không hoạt động? Tôi mới và tôi đang cố gắng để tìm hiểu để giúp đỡ bất kỳ sẽ được đánh giá rất nhiều.

+0

Bạn có thể đảm bảo rằng bạn đã cài đặt 'psycopg'? –

Trả lời

25

Vấn đề là, trong settings.py

'django.db.backends.postgis' 

nó được coi là

django.contrib.gis.db.backends.postgis 

rằng nên làm điều đó.

1

Tôi gặp phải lỗi tương tự trên Mac OS X 10.6 sau khi tôi làm theo hướng dẫn trên trang web geodjango và cài đặt các gói bằng Homebrew. Rõ ràng, tài liệu Geodjango đã đưa ra một số hướng dẫn không chính xác/lỗi thời về cách cài đặt nó. Để làm Geodjango công việc, tôi đi theo một vài bước sau:

  1. Ngay bây giờ, GeoDjango 1,4 không chơi đẹp với PostGIS 2.0 (đó là phiên bản được cài đặt Homebrew khi tôi theo các hướng dẫn trong tài liệu GeoDjango). Vì vậy, tôi cần cài đặt PostGIS 1.5. Tôi đã làm điều này bằng cách sử dụng lệnh ga sau (để làm việc này, bạn phải cài đặt Homebrew):

    brew tap homebrew/versions 
    brew install postgis15 
    brew untap homebrew/versions 
    
  2. PostGIS 1.5 không chơi đẹp với PostgreSQL 9.2 (đó là phiên bản Homebrew cài đặt khi tôi đi theo Hướng dẫn tài liệu của Geodjango). Vì vậy, tôi đã cài đặt PostGreSQL 9.1. Tôi quên chính xác những lệnh Homebrew mà tôi đã sử dụng để cài đặt PostGreSQL 9.1, nhưng chúng nên tương tự như bước trước.

  3. Trong trường hợp của tôi, các bước trước đó không đủ để đưa Geodjango hoạt động. Khi tôi cố gắng chạy 'syncdb' trong Django một lần nữa, tôi phát hiện ra một lỗi mới trong Terminal:

    django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: 
    No module named psycopg 
    
  4. Tôi ban đầu nghĩ rằng bản sao của tôi psycopg2 và PostgreSQL9.1 không nằm PYHTONPATH tôi, vì vậy tôi đã thêm họ. Tôi cũng fiddled xung quanh để đảm bảo django đã chạy PostgreSQL 9,1 thay vì 9,2. Tôi đã sử dụng 'initdb/usr/local/var/postgres'.

  5. Sau đó, tôi cần thực hiện một số cấu hình cơ sở dữ liệu. Tôi thiết lập một mẫu trong PostGIS và thiết lập một "vai trò" (/ người dùng) cho cơ sở dữ liệu. Để làm điều này, tôi làm theo hướng dẫn trong tài liệu Geodjango. Tôi đã nhận được rất nhiều lỗi, nhưng Googled họ và tìm thấy giải pháp khá dễ dàng.

  6. Sau đó, GeoDjango bắt đầu hoạt động bình thường!

nguồn Đây là một hữu ích nhất mà tôi tìm thấy và các liên kết đến các url hữu ích khác mà bao gồm một số các vấn đề này một cách chi tiết hơn: http://pragmaticstartup.wordpress.com/2012/09/26/installing-django-postgis-postgres-on-os-x-version-hell/

Các vấn đề liên quan