首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python无法加载libgeos_c-1.dll

Python无法加载libgeos_c-1.dll
EN

Stack Overflow用户
提问于 2010-10-05 05:52:03
回答 5查看 3.2K关注 0票数 4

我正在构建我的第一个GeoDjango项目,但我有点绝望。

我已经在PostgreSQL上通过一键安装程序安装了Windows9和PostGis 1.5。所以一切都在那里。我在settings.py中将GEOS_LIBRARY_PATH设置为libgeos_c-1.dll的完整路径。但是当我运行manage.py同步数据库时,我遇到了以下错误:

代码语言:javascript
运行
复制
  File "C:\Python25\lib\site-packages\django\contrib\gis\geometry\backend\geos.py", line 1, in <module>
    from django.contrib.gis.geos import \
  File "C:\Python25\Lib\site-packages\django\contrib\gis\geos\__init__.py", line 6, in <module>
    from django.contrib.gis.geos.geometry import GEOSGeometry, wkt_regex, hex_regex
  File "C:\Python25\Lib\site-packages\django\contrib\gis\geos\geometry.py", line 14, in <module>
    from django.contrib.gis.geos.coordseq import GEOSCoordSeq
  File "C:\Python25\Lib\site-packages\django\contrib\gis\geos\coordseq.py", line 9, in <module>
    from django.contrib.gis.geos.libgeos import CS_PTR
  File "C:\Python25\lib\site-packages\django\contrib\gis\geos\libgeos.py", line 51, in <module>
    lgeos = CDLL(lib_path)
  File "C:\Python25\lib\ctypes\__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found

因此,我打开libgeos.py并检查指定的行。它只是一个简单的"CDLL(lib_path)“。显然,lib_path就是GEOS_LIBRARY_PATH。

所以我创建了一个简单的测试:

代码语言:javascript
运行
复制
from ctypes import CDLL

lgeos = CDLL('libgeo's path')

仍然有同样的问题。所以在python中根本不能使用CDLL来加载这个dll。在这个阶段,我不知道该怎么做。请帮帮忙。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-27 08:22:12

这里也有同样的问题。你能不能分享一下正确的DLL?如果这真的解决了问题。或者安装OSGeo4W是唯一的方法?如果是这样,你遵循了什么安装程序?

票数 0
EN

Stack Overflow用户

发布于 2011-01-11 14:54:37

显然,在设置模块变量后使用doble '\‘斜杠对我有效,但现在启动此错误’GEOS_LIBRARY_PATH‘对象没有属性'OSMGeoAdmin’

票数 3
EN

Stack Overflow用户

发布于 2012-07-18 15:24:36

在通过Windows安装程序安装PostgreSQL9.1和Postgis2.0之后,我也遇到了同样的问题。不需要下载其他任何东西。您所要做的就是将此目录添加到Windows path中:C:\PostgreSQL\9.1\binlibgeos_c-1.dll文件所在的任何位置。如果希望新环境变量对IDE生效,则可能需要重新启动。对于命令行,只需打开一个新的命令提示符。

这样做使设置GEOS_LIBRARY_PATH成为可选的,因为所需的文件已经在Windows path中。

这可能不适用于2010年的运营,但对于其他在2012年遇到同样问题的人来说,这可能是最简单的解决方案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3859423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档