16

我正在尝试安装 Postgis 以便在 OSX 上使用 GeoDjango。

为此,我首先完全卸载了 postgres,然后按照 GeoDjango 文档安装了所有内容:https ://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#homebrew

我做了以下事情:

brew update
brew upgrade
brew install postgresql
brew install postgis
brew install gdal
brew install libgeoip

当我运行我的 Django 项目时,我收到以下错误:

OSError at / dlopen(/usr/local/lib/libgeos_c.so, 6): image not found

我跑了

sudo find . -name "libgeos_c*"

并得到:

./Library/Frameworks/GEOS.framework/Versions/3/unix/lib/libgeos_c.dylib
./Users/martin/opt/geos-3.3.0/capi/.deps/libgeos_c_la-geos_c.Plo
./Users/martin/opt/geos-3.3.0/capi/.deps/libgeos_c_la-geos_ts_c.Plo
./usr/local/Cellar/geos/3.3.3/lib/libgeos_c.1.dylib
./usr/local/Cellar/geos/3.3.3/lib/libgeos_c.a
./usr/local/Cellar/geos/3.3.3/lib/libgeos_c.dylib
./usr/local/Cellar/geos/3.3.4/lib/libgeos_c.1.dylib
./usr/local/Cellar/geos/3.3.4/lib/libgeos_c.a
./usr/local/Cellar/geos/3.3.4/lib/libgeos_c.dylib
./usr/local/Cellar/geos/3.3.5/lib/libgeos_c.1.dylib
./usr/local/Cellar/geos/3.3.5/lib/libgeos_c.a
./usr/local/Cellar/geos/3.3.5/lib/libgeos_c.dylib
./usr/local/lib/libgeos_c.1.dylib
./usr/local/lib/libgeos_c.a
./usr/local/lib/libgeos_c.dylib

如您所见,根本没有“.so”文件。有什么建议么?

编辑:

出于绝望,我还安装了 KyngChaos 软件包并添加了以下设置:

GEOS_LIBRARY_PATH = '/Library/Frameworks/GEOS.framework/GEOS' 
GDAL_LIBRARY_PATH = '/Library/Frameworks/GDAL.framework/GDAL' 
GEOIP_LIBRARY_PATH = '/usr/local/Cellar/geoip/1.4.8/lib/libGeoIP.dylib'

这解决了问题。

4

5 回答 5

22

抱歉,KyngChaos 解决方案完全违背了使用自制软件的目的。

自制用户的答案(至少,对于这个)是卸载geos及其依赖项然后重新安装geos,然后是依赖项

这对我有用:

brew uninstall geos gdal geoip libspatialite librasterlite spatialite-gui spatialite-tools
brew cleanup
brew install geos
brew install gdal geoip libspatialite librasterlite spatialite-gui spatialite-tools
brew cleanup

似乎一些geos依赖关系变得不同步。

您可以通过跟踪返回的内容来验证需要安装的库:

python -c 'import _ctypes; _ctypes.dlopen("/usr/local/lib/libgdal.dylib")'

你会看到类似的东西

Reason: Incompatible library version: [some geos dependent library].dylib requires version X.X.X or later, but libgeos_c.1.8.0.dylib provides version X.X.X.

brew uninstall [some geos dependency]
brew install [some geos dependency]
brew cleanup

然后重新运行上述python命令,问题将得到解决,或者它会揭示另一个需要卸载/安装的依赖项。

于 2013-08-22T17:51:47.787 回答
3

我是这样解决的。

$ brew install postgresql
$ brew install postgis
$ brew install gdal
$ brew install libgeoip

然后在 Django 设置中设置:

GEOS_LIBRARY_PATH = '/usr/local/Cellar/geos/3.4.2/lib/libgeos_c.1.dylib'

然后它对我有用。

于 2014-10-07T14:47:28.710 回答
2

安装说明似乎有答案,即设置环境变量$GEOS_LIBRARY_PATH

于 2012-07-02T13:35:39.167 回答
0

同样在这里 - 按照指示安装所有内容后,我返回并添加了 KyngChaos 库,然后将三个导出语句添加到我的 ~/.bash_profile 中,如上所述。这解决了我的问题。

于 2012-12-13T12:24:33.737 回答
0

我遇到了同样的问题,并且能够通过从 Homebrew 卸载 GDAL 并从 KyngChaos 安装 GDAL Complete 包来解决它:http ://www.kyngchaos.com/software/frameworks

于 2016-12-15T10:12:02.700 回答