无法找到库geos_c或加载其任何变体

use*_*767 53 python shapely

我在fedora 19中使用python.我想运行以下行Python:import shapely.geometry 出现以下错误:

OSError:无法找到或加载任何库geos_c icts of variants ['libgeos_c.so.1','libgeos_c.so']

我安装了Shapely包,以及以下两个库:

的glibc-2.17-4.fc19.i686.rpm

GEOS-3.3.8-2.fc19.i686.rpm

我只是在网上寻找这个问题的解决方案,但我还没找到

请帮我 !

PaF*_*PaF 84

使用pip安装得很整齐,并且遇到了同样的问题.所以我继续安装它:

sudo apt-get install libgeos-dev
Run Code Online (Sandbox Code Playgroud)

它奏效了.我正在运行Ubuntu,所以如果你使用Fedora,你应该运行:

sudo yum install geos-devel
Run Code Online (Sandbox Code Playgroud)

  • 在 Mac OS 上“brew install geos” (16认同)
  • 在 Fedora 上,它应该是 `sudo yum install geos-devel` (2认同)

J.K*_*J.K 7

我使用的是 Linux (Red Hat),并且收到此错误:

OSError:/home/[user]/.conda/envs/ox/lib/libgeos_c.so:无法打开共享对象文件:没有这样的文件或目录

什么对我有用:

conda install geos
Run Code Online (Sandbox Code Playgroud)


Set*_*eth 5

Shapely通过 ctypes 加载 geos

在你的 python 中试试这个,看看你是否得到了什么:

from ctypes.util import find_library
find_library('geos_c')
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,那么您的 geos 安装可能会出现问题。据此你的地理应该在/usr/lib/libgeos_c.so.1. 你的图书馆真的在那里吗?

  • 我也有同样的问题。我运行了 `from ctypes.util import find_library find_library('geos_c')` 它返回了 `'libgeos_c.so.1'` 所以看起来它就在那里...... (3认同)

小智 5

设置LD_LIBRARY_PATH,然后运行python

export LD_LIBRARY_PATH=/path_to/geos/lib:$LD_LIBRARY_PATH

python mytest.py
Run Code Online (Sandbox Code Playgroud)


Pac*_*ena 5

在 ubuntu 中,以下命令应该处理它。这一切都归结为以下软件包。

(2017 年原创)

sudo apt-get install libgeos-c1 libgeos-3.4.2
Run Code Online (Sandbox Code Playgroud)

编辑:(2020 年更新版本)

sudo apt-get install libgeos-c1v5 libgeos-3.7.1
Run Code Online (Sandbox Code Playgroud)