我正在尝试在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错误:
The procedure entry point sqlite3_column_origin_name could not be located in the dynamic link library ...\osgeo4w64\bin\gdal202.dll
还有一个依赖项由OSGeo4W安装的libcurl.dll引发的Ordinal Not Found错误:
The ordinal 361 could not be located in the dynamic link library ..\osgeo4w64\bin\libcurl.dll
然后Python引发以下错误:
[WinError 182] The operating system cannot run %1
我通过将gdal版本降级为gdal201.dll来解决了第一个错误,但仍然无法解决第二个错误。
我尝试下载最新的Windows二进制版本的libcurl并替换它,但是然后Python引发了另一个错误:
[WinError 126] The specified module could not be found
我还检查了我的curl二进制文件的架构是x64(与我的Python和OSGeo4W相同)。
希望有人可以帮助,非常感谢。
按照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错误:
The procedure entry point sqlite3_column_origin_name could not be located in the dynamic link library ...\osgeo4w64\bin\gdal202.dll
还有一个依赖项由OSGeo4W安装的libcurl.dll引发的Ordinal Not Found错误:
The ordinal 361 could not be located in the dynamic link library ..\osgeo4w64\bin\libcurl.dll
然后Python引发以下错误:
[WinError 182] The operating system cannot run %1
我通过将gdal版本降级为gdal201.dll来解决了第一个错误,但仍然无法解决第二个错误。
我尝试下载最新的Windows二进制版本的libcurl并替换它,但是然后Python引发了另一个错误:
[WinError 126] The specified module could not be found
我还检查了我的curl二进制文件的架构是x64(与我的Python和OSGeo4W相同)。
希望有人可以帮助,非常感谢。
libeay32.dll
从另一个目录加载(由于PATH中的顺序)。我通过将OSGeo4W中的libeay32.dll
替换为被覆盖的libeay32.dll
来解决了这个问题。 - phuctm97