我正在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版本。
这些解决方案包括:
在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
似乎这是很多人遇到的问题。
一个简洁而完整的答案将不胜感激。
感谢您的帮助。
答案 0 :(得分:1)
我最终从此link下载了二进制GDAL文件。适用于我的Python版本的版本是GDAL-2.4.1-cp37-cp37m-win32。
如果您遇到相同的问题,请注意以下几点:
确保您的虚拟环境中的python版本与gdal版本的位大小相同
要启用.bat脚本执行,必须更改Set-ExecutionPolicy变量
cd .../your-venv/
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Scripts/Activate.ps1
pip install C:\...\GDAL-2.4.1-cp37-cp37m-win32.whl
希望这会有所帮助。
答案 1 :(得分:1)
我找到的最简单的方法是:
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,请确保清除路径变量。