【发布时间】:2019-05-09 23:23:34
【问题描述】:
我正在尝试在我的 Django 项目中安装 GeoDjango,但 GDAL 出现了奇怪的错误。
按照 Django 文档,我使用 OSGeo4W64 安装了 GDAL、GEOS、PROJ,具体来说,这些是我选择在 OSGeo4W64 设置上安装的软件包:
-
gdal v2.3.2-2 -
geos v3.7.0-1 proj v5.2.0-1
我还按照记录设置了我的环境变量。
我遇到了什么错误
起初,当我开始我的 Django 项目(使用 runserver)时,python 试图寻找 gdal202.dll 并引发错误Entry Point Not Found:
程序入口点 sqlite3_column_origin_name 不能是 位于动态链接库...\osgeo4w64\bin\gdal202.dll
还有一个错误 Ordinal Not Found 与 libcurl.dll(由 OSGeo4W 作为依赖项安装):
无法在动态链接库中定位序数 361 ..\osgeo4w64\bin\libcurl.dll
和python引发错误:
[WinError 182] 操作系统无法运行 %1
我做了什么
我通过将gdal 版本降级为gdal201.dll 修复了第一个错误,但仍然不知道如何解决第二个错误。
我尝试下载最新的 Windows 二进制版本的 libcurl 并替换为,但后来我得到了另一个由 python 引发的错误:
[WinError 126] 找不到指定的模块
我还检查了我的 curl 二进制文件的 arch 是 x64(与我的 python 和 OSGeo4W 相同)。
希望有人能帮忙,非常感谢。
【问题讨论】:
-
我想通了。原因是因为
libeay32.dll(另一个依赖项)是从另一个目录加载的(因为在 PATH 中排序)。我通过将 OSGeo4W 中的libeay32.dll替换为覆盖的libeay32.dll解决了这个问题 -
您可以在下面回答自己并批准答案。
-
你在哪里找到另一个版本的 libeay32.dll(不是在 OSGeo4W 目录中的那个)?
-
没关系,我在另一台机器上找到了它,奇怪的是在 C:\Program Files\Git\mingw64\bin 目录中。
标签: django gdal geodjango osgeo