Windows 上的 GeoDjango:“找不到 GDAL 库”/“OSError:[WinError 126] 找不到指定的模块”

2023-11-30

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

导入注意事项:我已经安装了 miniconda 以在单独的环境中运行。当我工作时,我确实激活了这个环境“开发”

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

  1. 从以下位置下载并安装最新的 (10.3) PostgreSQL 安装程序https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
  2. 安装后我还安装了使用应用程序堆栈生成器来安装 PostGis
  3. 我已经安装了 OSGeo4Whttps://trac.osgeo.org/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 日更新:

  • 我尝试过自己手动安装 GDAL(来自:通用核心组件)
  • 我已经安装了(我假设是)Python 绑定https://www.lfd.uci.edu/~gohlke/pythonlibs/。我仍然遇到同样的错误。
  • 我还尝试将 GDAL_LIBRARY_PATH 设置为 GDAL 目录或 gdal-data 目录(驻留在 GDAL 目录中)。

现在我收到以下错误:

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

(虽然 .dll 在那里......)


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

  • Run python检查您的python是 32 位或 64 位。
  • Install corresponding OSGeo4W (32 or 64 bit) into C:\OSGeo4W or C:\OSGeo4W64:
    • Note:选择 Express Web-GIS 安装并单击下一步。
    • 在“选择软件包”列表中,确保选择 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']
    
  • Run python manage.py check验证 geodjango 是否正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上的 GeoDjango:“找不到 GDAL 库”/“OSError:[WinError 126] 找不到指定的模块” 的相关文章

  • 如何移动我的图像? python 3.10.4 pygame

    我会移动我的图像 图像是matiskinfinal png 我尝试将像素添加到 x 或其他我不知道它是什么的东西 因为我真的是 python 的初学者 pygame但是是 x x 变化 但图像没有移动 import os import py
  • Django 表单:时间字段验证

    我觉得我在这里遗漏了一些明显的东西 我有一个 Django 表单 其中包含时间场 http docs djangoproject com en dev ref forms fields timefield在上面 我希望能够允许像 10 30
  • 如何使用 HTTP 标头发送非英语 unicode 字符串?

    我是 HTTP 相关问题的新手 我的问题是在 iOS 开发中 我想使用 HTTP 标头发送一个字符串 所以我使用 httpRequest setValue nonEnglishString forHTTPHeaderField custom
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • 检测/删除 Python 2 + GTK 中不成对的代理字符

    在Python 2 7中我可以成功转换Unicode字符串 abc udc34xyz 转换为 UTF 8 结果是 abc xed xb0 xb4xyz 但是当我将 UTF 8 字符串传递给例如时 pango parse markup or
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 类型错误:需要 Future 或协程

    我尝试在 asyncssh 上自动重新连接 ssh 客户端 SshConnectManager 必须留在后台并在需要时进行 ssh 会话 class SshConnectManager object def init self host u
  • 使用 3d 对象作为 3d 散点图中的标记 - Python

    使用下面的代码 我尝试模拟一个用罐头制成的碗 我希望每个标记都是一个罐头 最好的方法是什么 我真的很感激任何建议 谢谢 import pylab import numpy as np from math import pi sin cos
  • pandas to_sql sqlalchemy 与 secure_transport 的连接

    我正在尝试将数据发送到具有 require secure transport ON 的服务器上的 mysql 数据库 当我尝试使用以下代码连接到它时 import pandas as pd import pymysql from sqlal
  • 根据给定列表中的值替换列中的值[重复]

    这个问题在这里已经有答案了 我在数据框中有一列 仅允许定义列表中存在的值 例如 给定列表 l1 1 2 5 6 如果列表中不存在列中的值 我需要将每个值替换为 0 column Expected column 1 1 5 5 2 2 3 0
  • django 表单错误打印 __all__

    默认登录模板中的代码 form errors 当帐户处于非活动状态时生成以下 html 输出 ul class errorlist li all ul class errorlist li This account is inactive
  • 使用 Python 脚本打开特定文件类型?

    如何使 Python 脚本成为特定文件类型 例如 foo 的默认应用程序 例如 当我双击 Finder Explorer 中的文件时 我希望该文件在 Python 脚本中打开 这可以在 Win 和 或 OS X 中实现吗 如果重要的话 该应
  • 如何修改 contenteditable 元素的innerHTML

    我使用 Selenium 与 Chrome driver 和 python3 6 来测试网站 我在网页中有代码片段如下 div class 3F6QL 2WovP div class 39LWd Type a message div div
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • 如何在 Django 模板上使用 if/else 条件?

    我将以下字典传递给渲染函数 源是字符串列表 标题是可能等于源中字符串之一的字符串 title title sources sources 在 HTML 模板中 我想完成以下几行内容 for source in sources tr td s
  • 如何可视化多维数据上的 kmeans 聚类

    我在 mnist 数据集上使用 kmeans 聚类算法 并希望可视化聚类后的图 到目前为止我做了这个 from mnist import MNIST mndata MNIST Datasets X train y train mndata
  • 如何将 fields 参数传递到 Google Drive Python API 调用中

    I have results drive service files list body execute where body q query string maxResults 1 为了提高性能 我想限制返回的字段 如下所述 https
  • Matplotlib 中的 TwoSlopeNorm 未按预期工作

    我正在尝试创建一个具有发散颜色图的绘图 该颜色图在零附近不对称 In this https stackoverflow com a 20146989 6288682例如 DivergingNorm函数被使用并产生我想要的 然而 我使用的是更
  • 在至少 7 天内连续三天登录该产品的用户

    我有一个用于用户参与的数据框 df 如下所示 time stamp user id 2013 01 01 10 05 23 1 2013 01 03 16 35 23 1 2013 01 06 11 06 35 1 2013 01 10 1
  • 在Python中从CSV文件中获取随机行并找到相应的单词,就像测验一样

    抱歉标题含糊不清 想不出更好的表达方式 我有一个包含德语 英语单词的 CSV 文件 如下所示 Ja Yes Nein No Katze Cat 我希望我的 python 脚本从 CSV 文件中打印一个随机的德语单词 并要求他们输入英语单词

随机推荐