gpt4 book ai didi

python - Windows 上的 GeoDjango : "Could not find the GDAL library"/ "OSError: [WinError 126] The specified module could not be found"

转载 作者:太空狗 更新时间:2023-10-29 20:33:19 25 4
gpt4 key购买 nike

我一直在尝试设置我的 Windows 计算机,以便我可以拥有一个带有 PostGIS 扩展名的本地 postgreSQL。安装了这个之后,我希望能够在将其放入云之前在本地使用 geodjango 创建一个项目。我已经在我的本地机器上使用 Django 工作了一段时间,现在使用 SQLite DB,但是由于下一个项目将部分基于基于坐标的数据,所以我想设置正确的环境。

导入说明:我已经安装了 mini-conda 以在单独的环境中运行。不过,我在工作时会激活这个“开发”环境

我已尝试在线关注大部分 geodjango 信息/教程,但无法正常工作。我所做的(主要是遵循:https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows):

  1. https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 下载并安装最新的 (10.3) PostgreSQL 安装程序
  2. 安装后我还安装了 Application Stack Builder 来安装 PostGis
  3. 我已经从 https://trac.osgeo.org/osgeo4w/ 安装了 OSGeo4W
  4. 我已经按照 geodjango 网站 ( https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows ) 上的描述创建了一个批处理脚本,并以管理员身份运行它(除了它设置 python 路径的部分,因为自从我进入以来 python 已经在那里了使用 python 有一段时间了)
  5. 我在 psql shell 中尝试了一些命令,我​​想我已经创建了一个数据库,名称为:geodjango,用户名:****,密码为:****。
  6. 我不知道我是否给了 geodjango 用户所有权限,但我怀疑是这样。

完成所有这些之后,我创建了一个新的 django 项目,并在 settings.py 中添加了一些部分:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis',
'nameOfMyApp',
]

我在 settings.py 中也有这个:

DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'geodjango',
'USER': '****',
'PASSWORD': '****',
'HOST': 'localhost',
}
}

# FOR GEODJANGO
POSTGIS_VERSION = (2, 4, 3)

当我尝试在 django 中设置数据库时,我运行(在正确的文件夹中):

python manage.py makemigrations

我收到以下错误:

django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal202", "gdal201", "gdal20", "gdal111", "gdal110", "gdal19"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.

我已尝试修复该问题,但似乎无济于事。谁能帮我在本地设置这一切?

2018 年 7 月 3 日更新:

现在我得到以下错误:

OSError: [WinError 126] The specified module could not be found

(当 .dll 存在时...)

最佳答案

我发现以下内容适用于 Windows:

  • 运行 python 以检查您的 python 是 32 位还是 64 位。
  • 安装相应的OSGeo4W (32 或 64 位)到 C:\OSGeo4WC:\OSGeo4W64:
    • 注意:选择 Express Web-GIS Install 并单击下一步。
    • 在“选择包”列表中,确保选择了 GDAL; MapServer 和 Apache 也默认启用,可以安全地取消选中。
  • 确保您的 settings.py 中包含以下内容:

    import os
    if os.name == 'nt':
    import platform
    OSGEO4W = r"C:\OSGeo4W"
    if '64' in platform.architecture()[0]:
    OSGEO4W += "64"
    assert os.path.isdir(OSGEO4W), "Directory does not exist: " + OSGEO4W
    os.environ['OSGEO4W_ROOT'] = OSGEO4W
    os.environ['GDAL_DATA'] = OSGEO4W + r"\share\gdal"
    os.environ['PROJ_LIB'] = OSGEO4W + r"\share\proj"
    os.environ['PATH'] = OSGEO4W + r"\bin;" + os.environ['PATH']
  • 运行 python manage.py check 以验证 geodjango 是否正常工作。

关于python - Windows 上的 GeoDjango : "Could not find the GDAL library"/ "OSError: [WinError 126] The specified module could not be found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49139044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com