2017-05-23 25 views
5

Tôi đã làm điều này hàng chục lần trước đây, nhưng một cái gì đó không hoạt động thời gian này ..GeoDjango trên Windows: Hãy thử đặt GDAL_LIBRARY_PATH trong cài đặt của bạn

Sau khi tài liệu:

https://docs.djangoproject.com/en/1.11/ref/contrib/gis/install/#windows

Tôi đang cố gắng để thiết lập GeoDjango trên một máy Windows (điều này là một cửa sổ ảo 10 thiết lập trên paperpace.com). Dường như có vấn đề với cài đặt PATH của tôi, nhưng tôi không thể hiểu được nó là gì. Tôi đã chạy các lệnh được đánh dấu trong các hướng dẫn. Tôi đã kiểm tra biến PATH của tôi và mọi thứ có vẻ ok. Tôi đã cố gắng chỉ chúng cho cả hai phiên bản 32-bit và 64-bit của OSGeo4Win. Bất kể, tôi nhận được kết quả sau mỗi lần:

C:\Python\lib\site-packages\floppyforms\__init__.py:21: UserWarning: Unable to import floppyforms.gis, geometry widgets not available 
    "Unable to import floppyforms.gis, geometry widgets not available") 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "C:\Python\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line 
    utility.execute() 
    File "C:\Python\lib\site-packages\django\core\management\__init__.py", line 337, in execute 
    django.setup() 
    File "C:\Python\lib\site-packages\django\__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "C:\Python\lib\site-packages\django\apps\registry.py", line 108, in populate 
    app_config.import_models() 
    File "C:\Python\lib\site-packages\django\apps\config.py", line 202, in import_models 
    self.models_module = import_module(models_module_name) 
    File "C:\Python\lib\importlib\__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 978, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 961, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 655, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 678, in exec_module 
    File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed 
    File "C:\Python\lib\site-packages\django\contrib\auth\models.py", line 4, in <module> 
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager 
    File "C:\Python\lib\site-packages\django\contrib\auth\base_user.py", line 52, in <module> 
    class AbstractBaseUser(models.Model): 
    File "C:\Python\lib\site-packages\django\db\models\base.py", line 124, in __new__ 
    new_class.add_to_class('_meta', Options(meta, app_label)) 
    File "C:\Python\lib\site-packages\django\db\models\base.py", line 330, in add_to_class 
    value.contribute_to_class(cls, name) 
    File "C:\Python\lib\site-packages\django\db\models\options.py", line 214, in contribute_to_class 
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 
    File "C:\Python\lib\site-packages\django\db\__init__.py", line 33, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "C:\Python\lib\site-packages\django\db\utils.py", line 211, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "C:\Python\lib\site-packages\django\db\utils.py", line 115, in load_backend 
    return import_module('%s.base' % backend_name) 
    File "C:\Python\lib\importlib\__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "C:\Python\lib\site-packages\django\contrib\gis\db\backends\postgis\base.py", line 5, in <module> 
    from .features import DatabaseFeatures 
    File "C:\Python\lib\site-packages\django\contrib\gis\db\backends\postgis\features.py", line 1, in <module> 
    from django.contrib.gis.db.backends.base.features import BaseSpatialFeatures 
    File "C:\Python\lib\site-packages\django\contrib\gis\db\backends\base\features.py", line 4, in <module> 
    from django.contrib.gis.db.models import aggregates 
    File "C:\Python\lib\site-packages\django\contrib\gis\db\models\__init__.py", line 3, in <module> 
    from django.contrib.gis.db.models.aggregates import * # NOQA 
    File "C:\Python\lib\site-packages\django\contrib\gis\db\models\aggregates.py", line 1, in <module> 
    from django.contrib.gis.db.models.fields import ExtentField 
    File "C:\Python\lib\site-packages\django\contrib\gis\db\models\fields.py", line 3, in <module> 
    from django.contrib.gis import forms, gdal 
    File "C:\Python\lib\site-packages\django\contrib\gis\forms\__init__.py", line 3, in <module> 
    from .fields import ( # NOQA 
    File "C:\Python\lib\site-packages\django\contrib\gis\forms\fields.py", line 4, in <module> 
    from django.contrib.gis.geos import GEOSException, GEOSGeometry 
    File "C:\Python\lib\site-packages\django\contrib\gis\geos\__init__.py", line 5, in <module> 
    from .collections import ( # NOQA 
    File "C:\Python\lib\site-packages\django\contrib\gis\geos\collections.py", line 11, in <module> 
    from django.contrib.gis.geos.geometry import GEOSGeometry, LinearGeometryMixin 
    File "C:\Python\lib\site-packages\django\contrib\gis\geos\geometry.py", line 11, in <module> 
    from django.contrib.gis import gdal 
    File "C:\Python\lib\site-packages\django\contrib\gis\gdal\__init__.py", line 28, in <module> 
    from django.contrib.gis.gdal.datasource import DataSource 
    File "C:\Python\lib\site-packages\django\contrib\gis\gdal\datasource.py", line 39, in <module> 
    from django.contrib.gis.gdal.driver import Driver 
    File "C:\Python\lib\site-packages\django\contrib\gis\gdal\driver.py", line 5, in <module> 
    from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi 
    File "C:\Python\lib\site-packages\django\contrib\gis\gdal\prototypes\ds.py", line 9, in <module> 
    from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal 
    File "C:\Python\lib\site-packages\django\contrib\gis\gdal\libgdal.py", line 44, in <module> 
    'GDAL_LIBRARY_PATH in your settings.' % '", "'.join(lib_names) 
django.contrib.gis.gdal.error.GDALException: Could not find the GDAL library (tried "gdal111", "gdal110", "gdal19", "gdal18", "gdal17"). Try setting GDAL_LIBRARY_PATH in your settings. 

Có ai có ý tưởng nào không?

CẬP NHẬT: Tôi đã đi đến cửa hàng và mua một máy tính xách tay mới và tôi vẫn gặp sự cố tương tự. Nó có thể là một vấn đề versioning với một số phụ thuộc GeoDjango? Tôi đang thua lỗ vì phải làm gì, nhưng đó là trường hợp khẩn cấp đối với tôi.

Trả lời

6

Sự cố đã kết thúc là version mismatch between Django and GDAL. Django không tìm kiếm tên tệp chính xác (gdal202.dll trong trường hợp của tôi).

Sửa nó đòi hỏi tôi phải thêm str('gdal202') đến tập tin sau trên dòng 26:

(Python Root)\Lib\site-packages\django\contrib\gis\gdal\libgdal.py

Nếu vấn đề này tái diễn, bạn có thể xem xét thông qua thư mục OSGeo4W\bin của bạn để tìm ra gdalxxx.dll nó là nhu cầu Django tìm kiếm cho.

+0

cuộc sống tiết kiệm, cảm ơn! – ziggy

1

Thêm

GDAL_LIBRARY_PATH = r'C:\OSGeo4W64\bin\gdal202' 

để các thiết lập django làm việc cho tôi

+0

cài đặt django, như tệp gì? – ziggy

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