Windows 10中为Django/Geodjango安装GDAL/PROJ/GEOS的解决方案

jam*_*gan 3 python django osgeo gdal geodjango

无论您是发现安装 GDAL 库很困难,还是已经能够安装它但不知道如何使其在 Django 中为您的 geoDjango 应用程序工作,我都想分享我如何能够成功地让它工作我。我希望我不会错过任何一步,因为我花了几天时间才让它发挥作用。

jam*_*gan 6

为了让 geoDjango 工作,它需要一些免费的地理空间库,它在内置django.contrib.gis应用程序中使用这些库,我将向您展示如何安装它。

第1步:下载osgeo4w

由于某种原因,托管网站https://trac.osgeo.org/osgeo4w/下载链接无法正常工作,要么在 Chrome 中根本无法工作,要么在 Firefox 中下载 32 位,但在 Edge 浏览器中似乎工作正常另一种方法是使用 QGIS 链接https://qgis.org/en/site/forusers/download.html。您将获得一个下载的文件,格式为osgeo4w-setup.exe.

第 2 步:安装

他们说使用 Express 安装,我确信它不起作用,因为我已经尝试了至少 30 次,每次下载费用略高于 500MB。使用高级安装,因为这对我有用。点击

  1. 下一步 >按钮
  2. 选择从互联网安装并单击下一步 >
  3. 确保在询问为谁安装时选择“Just Me” ,然后单击“下一步”>
  4. 除非有原因,否则保持第四页的默认路径,然后单击“下一步”>
  5. 选择直接连接,然后单击下一步>
  6. 下一阶段对我的过程很重要,从下载库的可用站点中选择http://www.norbit.de,然后选择第三个链接
  7. 从此处单击“下一步”>直到开始下载,您应该有至少 600MB 的互联网捆绑包才能完成下载。

未来情况可能会发生一些变化,所以要小心。

第三步:修改Windows环境

在管理模式下打开命令提示符以获得管理权限。然后,您可以按照它们出现的顺序将它们复制并粘贴到另一个上。

这是截至 2022 年的 win64 系统,因为它是受支持的系统,如果您使用 win32,请确保下载 32 位版本的 OSGeo4W/GDAL,相同的命令将起作用。

  1. 设置 OSGEO4W_ROOT=C:\OSGeo4W
  2. 设置 GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
  3. 设置 PROJ_LIB=%OSGEO4W_ROOT%\share\proj
  4. 设置 PATH=%PATH%;%OSGEO4W_ROOT%\bin
  5. reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v 路径 /t REG_EXPAND_SZ /f /d "%PATH%"
  6. reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"/v GDAL_DATA /t REG_EXPAND_SZ /f /d "%GDAL_DATA%"
  7. reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"

有关上述所有命令,请参阅 django Doc 。

完成后,您可以通过在 Windows 搜索框中键入以下内容来检查环境变量以确认您的更改:

编辑系统环境变量

单击环境变量按钮,在系统变量部分滚动并双击路径。如果您不单击“新建”并自行添加,您应该在这里看到您的 python 路径以及“C:\OSGeo4W”和“C:\OSGeo4W\bin”。

成功完成后,在所有打开的窗口上单击“确定”,返回到您的 python 环境,如果您将使用Postgres ,则在命令提示符下使用 pip 安装 psycopg2 。

pip 安装 psycopg2

步骤 4:配置 django 成功通过后,当您打开cmd并键入时gdalinfo --version,您应该会看到安装的 gdal 版本,但是当您运行 django ( python manage.py check or runserser) 时,您大多数时候都会收到此错误,具体取决于您安装的 gdal 版本以及是否运行 django 时不会出现错误,您可以继续使用,无需遵循其余的答案。

引发ImproperlyConfigured(django.core.exceptions.ImproperlyConfigured:找不到GDAL库(尝试过“gdal303”,“gdal302”,“gdal301”,“gdal300”,“gdal204”,“gdal203”,“gdal202”,“gdal201” 、“gdal20”)。是否已安装 GDAL?如果已安装,请尝试在设置中设置 GDAL_LIBRARY_PATH。

要解决此问题,请转到保存OSGeo4W 的系统文件夹(大多数情况下它会位于C:\OSGeo4W),打开它并找到并打开bin。在文件夹内查找bin名为 的最大文件gdal***.dll

如果你的内存跨度小于 60 秒,则将 *** 数字写入某处,然后进入安装了 django 的 python 环境并导航到以下路径:

..\env\Lib\site-packages\django\contrib\gis\gdal

并使用您最喜欢的编辑器打开libgdal.py文件。

向下滚动到第 24 行,在lib_names列表中,将 *** 数字作为字符串添加到列表中,我的是304. 所以它变成了这样

lib_names = [

    "gdal303",

    "gdal302",

    "gdal301",

    "gdal300",

    "gdal204",

    "gdal203",

    "gdal202",

    "gdal201",

    "gdal20",

    "gdal304",

]
Run Code Online (Sandbox Code Playgroud)

另外,在第 38行添加 gdal 的版本,前缀为 gdal,如下所示"gdal3.4.2",当您在命令提示符中键入时,您将获得该版本gdalinfo --version

保存文件并完成,您现在可以毫无问题地运行您的 Geodjango 应用程序。祝你好运。