GeoDjango on Windows: "Could not find the GDAL library" / "OSError: [WinError 126] The specified module could not be found"
GeoDjango on Windows: "Could not find the GDAL library" / "OSError: [WinError 126] The specified module could not be found"
我一直在尝试设置我的 windows 计算机,以便我可以拥有一个带有 PostGIS 扩展的本地 postgreSQL。安装了这个之后,我希望能够在将其放入云之前在本地使用 geodjango 创建一个项目。我在本地机器上使用 Django 已经有一段时间了,但由于下一个项目将部分基于基于坐标的数据,所以我想设置正确的环境。
导入说明:我已经在单独的环境中将 mini-conda 安装到 运行。虽然我工作时确实激活了这个环境"development"
我尝试在线关注大部分 geodjango information/tutorials,但无法正常使用。我做了什么(主要是遵循这个:https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows):
- 从 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
下载并安装最新的 (10.3) PostgreSQL 安装程序
- 安装后我还安装了使用 Application Stack Builder 来安装 PostGis
- 我已经从 https://trac.osgeo.org/osgeo4w/
安装了 OSGeo4W
- 我已经按照 geodjango 网站 (https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows) 上的描述创建了一个批处理脚本,并且 运行 它作为管理员(除了将路径设置为 python 的部分,因为 python 已经在那里了,因为我已经使用 python 一段时间了)
- 我在 psql shell 中尝试了一些命令,我想我已经创建了一个数据库,名称为:geodjango,用户名:**** 并通过:****。
- 我不知道我是否给了 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,(来自:http://www.gisinternals.com/query.html?content=filelist&file=release-1911-x64-gdal-2-2-3-mapserver-7-0-7.zip 通用核心组件)
- 我已经安装(我假设是)来自 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 的 python 绑定。我仍然遇到同样的错误。
- 我还尝试将 GDAL_LIBRARY_PATH 设置为 GDAL 目录或 gdal-data 目录(位于 GDAL 目录中)。
现在我得到以下错误:
OSError: [WinError 126] The specified module could not be found
(虽然 .dll 在那里...)
我发现以下内容适用于 windows:
- 运行
python
检查您的 python 是 32 位还是 64 位。
- 将相应的 OSGeo4W(32 位或 64 位)安装到
C:\OSGeo4W
或 C:\OSGeo4W64
中:
- 注意: Select 表示Web-GIS安装然后点下一步
- 在‘Select Packages’列表中,确保选择了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 是否正常工作。
在我的例子中 (Windows10Pro+Python3.7.1),存在(自动选择的)dll 是不够的,即 gdal111.dll
.
我意识到我也有 gdal204.dll
位于 C:\OSGeo4W\bin
并尝试 "enrich" 列表变量 lib_names
和 'gdal204'
,在第 24 行%PYTHON_ROOT%\Lib\site-packages\django\contrib\gis\gdal\libgdal.py
的(关于 Windows NT 共享库),即
#[...]
elif os.name == 'nt':
# Windows NT shared libraries
lib_names = ['gdal204', 'gdal202', 'gdal201', 'gdal20', 'gdal111', 'gdal110', 'gdal19']
#[...] ^^^^^^^
暂时没有负面影响。
对于 Microsoft Windows 10 & Python3.6.8,我从 Unofficial Windows Binaries for Python Extension Packages 安装了 GDAL 2.3.3,修改 libgdal.py 在 lib_names 列表 env\Lib\site-packages\django\contrib\gis\gdal\libgdal.py
。
最后,将 osgeo 和 proj 添加到 PATH,并设置 GDAL_LIBRARY_PATH 如下(settings.py 的开头):
os.environ['PATH'] = os.path.join(BASE_DIR, r'env\Lib\site-packages\osgeo') + ';' + os.environ['PATH']
os.environ['PROJ_LIB'] = os.path.join(BASE_DIR, r'env3\Lib\site-packages\osgeo\data\proj') + ';' + os.environ['PATH']
GDAL_LIBRARY_PATH = os.path.join(BASE_DIR, r'env\Lib\site-packages\osgeo\gdal203.dll')
在这种情况下,env 是我的 Python 环境。
要遵循的步骤:
- 运行 python 检查您的 python 是 32 位还是 64 位。
- 将相应的 OSGeo4W(32 或 64 位)安装到
C:\OSGeo4W
或 C:\OSGeo4W64
:
注意:Select Express Web-GIS 安装并单击下一步。
- 在‘Select Packages’列表中,确保选择了GDAL; MapServer 和 Apache 也默认启用。
- 确保您的
settings.py
中包含以下内容:
import os
GDAL_LIBRARY_PATH = r'C:\OSGeo4W\bin\gdal300'
- 现在,运行如果服务器不工作,它仍然存在。 运行 在终端中执行以下命令。
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python3X
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
在我的 Windows 10 Pro 机器上更新了一些 OSGEO4W 之后,我又开始遇到 GDAL 绑定问题。我之前结合使用了此处发布的解决方案和 this tutorial.
这就是我使用 Windows 10 Pro 64 位、Django 3.0.6 和 GDAL 3.0.4 使用 python 3.7 虚拟环境的方法。我已经在没有 OSGEO4W 的情况下对其进行了测试,它似乎可以工作。
首先,从 Christoph Gohlke's Unofficial Windows Binaries for Python Extension Packages 下载 GDAL wheel。
pip install "/path/to/GDAL‑3.0.4‑cp37‑cp37m‑win_amd64.whl"
修改虚拟环境站点包中的libgdal.py文件,在Django GDAL包python文件的第23行添加'gdal300' (/path/to/virtual_env/Lib/site-packages/django/contrib/gis/gdal/libgdal.py):
elif os.name == 'nt':
# Windows NT shared libraries
lib_names = ['gdal300', 'gdal204', 'gdal203', 'gdal202', 'gdal201', 'gdal20']
最后,在 Django 项目的 settings.py 文件中添加
if os.name == 'nt':
VENV_BASE = os.environ['VIRTUAL_ENV']
os.environ['PATH'] = os.path.join(VENV_BASE, 'Lib\site-packages\osgeo') + ';' + os.environ['PATH']
os.environ['PROJ_LIB'] = os.path.join(VENV_BASE, 'Lib\site-packages\osgeo\data\proj') + ';' + os.environ['PATH']
我有同样的错误 "The specified module could not be found," 即使 gdal204.dll
出现在预期的位置,具有正确的架构(我通过在 Python 代码中添加断言并加载来验证来自 C 程序的 DLL)。
原来是 Python 3.7 app from the Microsoft Store 的问题,它会在您第一次在命令行中键入 python
时自动安装。
此版本 Python 拒绝加载 GDAL DLL;我不知道这是错误还是安全功能。
我通过以下方式解决了这个问题:
- 正在卸载 Python 应用程序
- 删除应用程序执行别名(如 the app description 中所述)
- 从 python.org
安装常规 Python 软件包
- 从 here 下载您的平台支持的 GDAL wheel 文件。
- 打开下载文件所在的命令window,激活你的虚拟环境。
- 然后使用命令
pip install name_of_the_file
安装 wheel .
您会看到 osgeo 文件夹已创建在 '...\Envs\my_django\Lib\site-packages\' 位置。
转到 osgeo 文件夹并复制 gdalxxx.dll 文件的整个路径并添加到setting.py 文件作为 gdal 库路径。例如
GDAL_LIBRARY_PATH = r'C:\Users\WIN8\Envs\my_django\Lib\site-packages\osgeo\gdal300.dll'
只是想跟进Udi的详细回答(因为我的rep不到50,不能直接评论,这是标记为最有用的回答);
几个小时后,我尝试了他提供的解决方案,但对我也不起作用。
我收到以下错误:
OSError: [WinError 193] %1 is not a valid Win32 application
但我留在那里发现虽然我是 运行 64 python 和操作系统(当然),但它一直在寻找 32 位 (OSGeo4W
) 文件夹.最终让我通过的是将 OSGeo4W64
文件夹的内容复制到 OSGeo4W
。希望它能为您节省时间。
再补充一点:
请务必编辑环境文件夹中的 libgdal.py
文件。它可能存在于多个地方 - 您的 python 文件夹和环境文件夹 - 如果您编辑 python 目录中的 libgdal
,它将无法工作。
创建地图兼容数据库
我最近买了一台新笔记本电脑,必须在我的新机器上安装 Python 和相关软件。我试图使用 OSGeo4W 创建一个 geodjango 兼容的数据库,但忘记了 PostgreSQL 和 pgAdmin4 的作用。
当您从 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 安装最新的 PostgreSQL 安装程序时,您会同时获得 pgAdmin4。
注意 - 电子商务是我的个人服务器组。
当您创建 PostgreSQL 13 服务器时,您的服务器组将与我的不同。
当我第一次在我的新机器上打开 pgAdmin4 时,我保留了默认用户名 'postgres'。如果您第一次登录 pgAdmin4 时选择了自己的用户名,则必须相应地更改以下值。
正在连接数据库
在我的代码中
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']
GDAL_LIBRARY_PATH = r'C:\OSGeo4W64\bin\gdal300.dll'
我收到有关 GDAL_LIBRARY_PATH 的错误消息,因此检查了 Windows 资源管理器。在发现我没有 gdal300.dll 文件时,我将代码更改为
GDAL_LIBRARY_PATH = r'C:\OSGeo4W64\bin\gdal301.dll'
pip install GDAL
(来自 https://www.lfd.uci.edu/~gohlke/pythonlibs/)
添加 %PYTHON_ROOT%\Lib\site-packages\django\contrib\gis\gdal\libgdal.py
import osgeo
检查 Gdal 版本:%PYTHON_ROOT%\Lib\site-packages\osgeo\gdal303.dll
lib_names = ['gdal303', 'gdal202', 'gdal201', 'gdal20', 'gdal111', 'gdal110', 'gdal19']
我一直在尝试设置我的 windows 计算机,以便我可以拥有一个带有 PostGIS 扩展的本地 postgreSQL。安装了这个之后,我希望能够在将其放入云之前在本地使用 geodjango 创建一个项目。我在本地机器上使用 Django 已经有一段时间了,但由于下一个项目将部分基于基于坐标的数据,所以我想设置正确的环境。
导入说明:我已经在单独的环境中将 mini-conda 安装到 运行。虽然我工作时确实激活了这个环境"development"
我尝试在线关注大部分 geodjango information/tutorials,但无法正常使用。我做了什么(主要是遵循这个:https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows):
- 从 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 下载并安装最新的 (10.3) PostgreSQL 安装程序
- 安装后我还安装了使用 Application Stack Builder 来安装 PostGis
- 我已经从 https://trac.osgeo.org/osgeo4w/ 安装了 OSGeo4W
- 我已经按照 geodjango 网站 (https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows) 上的描述创建了一个批处理脚本,并且 运行 它作为管理员(除了将路径设置为 python 的部分,因为 python 已经在那里了,因为我已经使用 python 一段时间了)
- 我在 psql shell 中尝试了一些命令,我想我已经创建了一个数据库,名称为:geodjango,用户名:**** 并通过:****。
- 我不知道我是否给了 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,(来自:http://www.gisinternals.com/query.html?content=filelist&file=release-1911-x64-gdal-2-2-3-mapserver-7-0-7.zip 通用核心组件)
- 我已经安装(我假设是)来自 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 的 python 绑定。我仍然遇到同样的错误。
- 我还尝试将 GDAL_LIBRARY_PATH 设置为 GDAL 目录或 gdal-data 目录(位于 GDAL 目录中)。
现在我得到以下错误:
OSError: [WinError 126] The specified module could not be found
(虽然 .dll 在那里...)
我发现以下内容适用于 windows:
- 运行
python
检查您的 python 是 32 位还是 64 位。 - 将相应的 OSGeo4W(32 位或 64 位)安装到
C:\OSGeo4W
或C:\OSGeo4W64
中:- 注意: Select 表示Web-GIS安装然后点下一步
- 在‘Select Packages’列表中,确保选择了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 是否正常工作。
在我的例子中 (Windows10Pro+Python3.7.1),存在(自动选择的)dll 是不够的,即 gdal111.dll
.
我意识到我也有 gdal204.dll
位于 C:\OSGeo4W\bin
并尝试 "enrich" 列表变量 lib_names
和 'gdal204'
,在第 24 行%PYTHON_ROOT%\Lib\site-packages\django\contrib\gis\gdal\libgdal.py
的(关于 Windows NT 共享库),即
#[...]
elif os.name == 'nt':
# Windows NT shared libraries
lib_names = ['gdal204', 'gdal202', 'gdal201', 'gdal20', 'gdal111', 'gdal110', 'gdal19']
#[...] ^^^^^^^
暂时没有负面影响。
对于 Microsoft Windows 10 & Python3.6.8,我从 Unofficial Windows Binaries for Python Extension Packages 安装了 GDAL 2.3.3,修改 libgdal.py 在 lib_names 列表 env\Lib\site-packages\django\contrib\gis\gdal\libgdal.py
。
最后,将 osgeo 和 proj 添加到 PATH,并设置 GDAL_LIBRARY_PATH 如下(settings.py 的开头):
os.environ['PATH'] = os.path.join(BASE_DIR, r'env\Lib\site-packages\osgeo') + ';' + os.environ['PATH']
os.environ['PROJ_LIB'] = os.path.join(BASE_DIR, r'env3\Lib\site-packages\osgeo\data\proj') + ';' + os.environ['PATH']
GDAL_LIBRARY_PATH = os.path.join(BASE_DIR, r'env\Lib\site-packages\osgeo\gdal203.dll')
在这种情况下,env 是我的 Python 环境。
要遵循的步骤:
- 运行 python 检查您的 python 是 32 位还是 64 位。
- 将相应的 OSGeo4W(32 或 64 位)安装到
C:\OSGeo4W
或C:\OSGeo4W64
:
注意:Select Express Web-GIS 安装并单击下一步。 - 在‘Select Packages’列表中,确保选择了GDAL; MapServer 和 Apache 也默认启用。
- 确保您的
settings.py
中包含以下内容:
import os
GDAL_LIBRARY_PATH = r'C:\OSGeo4W\bin\gdal300'
- 现在,运行如果服务器不工作,它仍然存在。 运行 在终端中执行以下命令。
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHON_ROOT=C:\Python3X
set GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
set PROJ_LIB=%OSGEO4W_ROOT%\share\proj
在我的 Windows 10 Pro 机器上更新了一些 OSGEO4W 之后,我又开始遇到 GDAL 绑定问题。我之前结合使用了此处发布的解决方案和 this tutorial.
这就是我使用 Windows 10 Pro 64 位、Django 3.0.6 和 GDAL 3.0.4 使用 python 3.7 虚拟环境的方法。我已经在没有 OSGEO4W 的情况下对其进行了测试,它似乎可以工作。
首先,从 Christoph Gohlke's Unofficial Windows Binaries for Python Extension Packages 下载 GDAL wheel。
pip install "/path/to/GDAL‑3.0.4‑cp37‑cp37m‑win_amd64.whl"
修改虚拟环境站点包中的libgdal.py文件,在Django GDAL包python文件的第23行添加'gdal300' (/path/to/virtual_env/Lib/site-packages/django/contrib/gis/gdal/libgdal.py):
elif os.name == 'nt':
# Windows NT shared libraries
lib_names = ['gdal300', 'gdal204', 'gdal203', 'gdal202', 'gdal201', 'gdal20']
最后,在 Django 项目的 settings.py 文件中添加
if os.name == 'nt':
VENV_BASE = os.environ['VIRTUAL_ENV']
os.environ['PATH'] = os.path.join(VENV_BASE, 'Lib\site-packages\osgeo') + ';' + os.environ['PATH']
os.environ['PROJ_LIB'] = os.path.join(VENV_BASE, 'Lib\site-packages\osgeo\data\proj') + ';' + os.environ['PATH']
我有同样的错误 "The specified module could not be found," 即使 gdal204.dll
出现在预期的位置,具有正确的架构(我通过在 Python 代码中添加断言并加载来验证来自 C 程序的 DLL)。
原来是 Python 3.7 app from the Microsoft Store 的问题,它会在您第一次在命令行中键入 python
时自动安装。
此版本 Python 拒绝加载 GDAL DLL;我不知道这是错误还是安全功能。
我通过以下方式解决了这个问题:
- 正在卸载 Python 应用程序
- 删除应用程序执行别名(如 the app description 中所述)
- 从 python.org 安装常规 Python 软件包
- 从 here 下载您的平台支持的 GDAL wheel 文件。
- 打开下载文件所在的命令window,激活你的虚拟环境。
- 然后使用命令
pip install name_of_the_file
安装 wheel .
您会看到 osgeo 文件夹已创建在 '...\Envs\my_django\Lib\site-packages\' 位置。
转到 osgeo 文件夹并复制 gdalxxx.dll 文件的整个路径并添加到setting.py 文件作为 gdal 库路径。例如
GDAL_LIBRARY_PATH = r'C:\Users\WIN8\Envs\my_django\Lib\site-packages\osgeo\gdal300.dll'
只是想跟进Udi的详细回答(因为我的rep不到50,不能直接评论,这是标记为最有用的回答);
几个小时后,我尝试了他提供的解决方案,但对我也不起作用。 我收到以下错误:
OSError: [WinError 193] %1 is not a valid Win32 application
但我留在那里发现虽然我是 运行 64 python 和操作系统(当然),但它一直在寻找 32 位 (OSGeo4W
) 文件夹.最终让我通过的是将 OSGeo4W64
文件夹的内容复制到 OSGeo4W
。希望它能为您节省时间。
再补充一点:
请务必编辑环境文件夹中的 libgdal.py
文件。它可能存在于多个地方 - 您的 python 文件夹和环境文件夹 - 如果您编辑 python 目录中的 libgdal
,它将无法工作。
创建地图兼容数据库
我最近买了一台新笔记本电脑,必须在我的新机器上安装 Python 和相关软件。我试图使用 OSGeo4W 创建一个 geodjango 兼容的数据库,但忘记了 PostgreSQL 和 pgAdmin4 的作用。
当您从 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 安装最新的 PostgreSQL 安装程序时,您会同时获得 pgAdmin4。
注意 - 电子商务是我的个人服务器组。
当您创建 PostgreSQL 13 服务器时,您的服务器组将与我的不同。
当我第一次在我的新机器上打开 pgAdmin4 时,我保留了默认用户名 'postgres'。如果您第一次登录 pgAdmin4 时选择了自己的用户名,则必须相应地更改以下值。
正在连接数据库
在我的代码中
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']
GDAL_LIBRARY_PATH = r'C:\OSGeo4W64\bin\gdal300.dll'
我收到有关 GDAL_LIBRARY_PATH 的错误消息,因此检查了 Windows 资源管理器。在发现我没有 gdal300.dll 文件时,我将代码更改为
GDAL_LIBRARY_PATH = r'C:\OSGeo4W64\bin\gdal301.dll'
pip install GDAL
(来自 https://www.lfd.uci.edu/~gohlke/pythonlibs/)
添加 %PYTHON_ROOT%\Lib\site-packages\django\contrib\gis\gdal\libgdal.py
import osgeo
检查 Gdal 版本:%PYTHON_ROOT%\Lib\site-packages\osgeo\gdal303.dll
lib_names = ['gdal303', 'gdal202', 'gdal201', 'gdal20', 'gdal111', 'gdal110', 'gdal19']