如何在Windows10上配置geodjango?

时间:2019-09-05 16:50:24

标签: django windows-10 gdal geodjango

我正在Windows 10上的geodjango项目中工作。我一直在遵循geodjango documentation中的教程和安装指南。我已经安装了所有必需的软件包并执行了bat脚本。

Python版本:Python 3.7.4(tags / v3.7.4:e09359112e,2019年7月8日,20:13:57)[MSC v.1916 64位(AMD64)]

OSGEO版本:GDAL 2.4.1,于2019/03/15发行

最初,我不得不重新配置我的虚拟环境,使其具有与OSGEOW4应用程序相匹配的64位python版本。

我已经尝试过针对问题12回答的解决方案。

这些解决方案包括:

  • 在django项目的 settings.py 开头之前设置环境变量

  • 定义GDAL_LIBRARY_PATH

  • 将gdal版本添加到django \ contrib \ gis \ gdal \ libgdal.py

我尚未尝试从二进制文件安装gdal的替代方法。我不明白为什么我无法使用OSGEO应用程序进行配置。

执行python manage.py check时命令提示符中出现的错误是:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()

[...]

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

似乎这是很多人遇到的问题。

一个简洁而完整的答案将不胜感激。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我最终从此link下载了二进制GDAL文件。适用于我的Python版本的版本是GDAL-2.4.1-cp37-cp37m-win32。

如果您遇到相同的问题,请注意以下几点:

  • 确保您的虚拟环境中的python版本与gdal版本的位大小相同

  • 要启用.bat脚本执行,必须更改Set-ExecutionPolicy变量

我的配置步骤如下:

  1. 从edm下载具有postgis空间扩展名的postgres
  2. 使用特定环境创建Django项目
  3. 打开powershell并导航到Django项目环境目录
cd .../your-venv/
  1. 设置执行策略变量
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
  1. 激活环境:
Scripts/Activate.ps1
  1. 下载适合您环境的gdal版本(https://www.lfd.uci.edu/~gohlke/pythonlibs/
  2. 从venv中的二进制文件安装gdal:
pip install C:\...\GDAL-2.4.1-cp37-cp37m-win32.whl
  1. 为您的项目安装其他要求

希望这会有所帮助。

答案 1 :(得分:1)

我找到的最简单的方法是:

  1. 从以下位置安装Gdal,例如:[https://www.lfd.uci.edu/~gohlke/pythonlibs/][1],如果此链接不可用,则所需的位置并不难找到。
  2. 将以下代码添加到settings.py中(如果需要,请更改virtualenv的名称):
       OSGEO_VENV = Path(__file__).parents[1] / 'venv/Lib/site-packages/osgeo/'
       GEOS_LIBRARY_PATH = str(OSGEO_VENV / 'geos_c.dll')
       GDAL_LIBRARY_PATH = str(OSGEO_VENV / 'gdal204.dll')
       os.environ["PATH"] += os.pathsep + str(OSGEO_VENV)```   
    

如果以前安装了OSGeo,请确保清除路径变量。