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


69

我在Fedora 19中使用Python。我想运行以下行:

import shapely.geometry

但是出现以下错误:

OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so']

我安装了软件包Shapely和以下两个库:

  • glibc-2.17-4.fc19.i686.rpm
  • geos-3.3.8-2.fc19.i686.rpm。

我该怎么办才能解决问题?


有关Centos7的信息,请参见:stackoverflow.com/questions/42097501/…yum install geos-devel
Deo Leung

Answers:


106

使用pip匀称安装,并且存在相同的问题。所以我继续安装它,如下所示:

sudo apt-get install libgeos-dev

而且有效。我正在运行Ubuntu,因此如果您使用的是Fedora,则应运行:

sudo yum install geos-devel

1
在Fedora上,应该是sudo yum install geos-devel
kadee '17

7
在Mac OS上brew install geos
Rowland Mtetezi

6

设置LD_LIBRARY_PATH,然后运行python

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

python mytest.py

4

在ubuntu中,以下命令应注意这一点。全部归结为以下软件包。

(原始2017)

sudo apt-get install libgeos-c1 libgeos-3.4.2

编辑:(2020年更新版本)

sudo apt-get install libgeos-c1v5 libgeos-3.7.1

3

通过ctypes均匀加载geos

在您的python中尝试一下,看看是否有任何东西:

from ctypes.util import find_library
find_library('geos_c')

如果不起作用,则可能是您的geos安装混乱了。根据这个,你GEOS应该是/usr/lib/libgeos_c.so.1。您的图书馆实际上在吗?


没有结果表示python找不到该库(返回None)。在Linux上,python用于/sbin/ldconfig -p查找库(您可以运行该命令并查找libgeos)。我猜您的geos RPM缺少依赖项或未正确安装。
赛斯

3
我有同样的问题。我跑from ctypes.util import find_library find_library('geos_c')了回来'libgeos_c.so.1',看起来好像在那里...
bsf10


2

如果您像我一样使用Anaconda并遇到了这种情况,请将libgeos *文件从/ usr / lib复制到anaconda / lib目录,然后重试... :)希望这样可以节省其他人,因为我花了几个小时这个。


您还记得您需要采取的其他步骤吗?我首先通过brew安装它,然后按照您的建议将文件复制到anaconda lib文件夹,但是OSError: Could not find lib geos_c or load any of its variants ['/Library/Frameworks/GEOS.framework/Versions/Current/GEOS', '/opt/local/lib/libgeos_c.dylib'].当我尝试运行脚本时仍然可以使用。奇怪的是,通过brew安装它足以使pip开始工作。
巴尼2015年

2
我在Ubuntu 16上使用Anaconda,即使先前安装了libgeos-dev,也遇到了类似的错误。对我来说,解决方法是conda install geos在那之后,在我的conda环境中,pip安装工作正常。
svohara

1

我在Jupyter Notebook上没有问题,但是在使用PyCharm时遇到了此问题。在计算机上尝试了多个窗口,并且以下故障排除步骤解决了该问题

pip install geos

转到PyCharm,File-> Settings-> Project-> Project Interpreter(检查python.exe文件所在的路径是否正确)-> Add 在此处输入图片说明

在Virtualenv Environment-> Base Interpreter上检查是否指向python.exe的正确位置

与系统解释器->解释器以及Pipenv环境->基本解释器相同

在此处输入图片说明

确保所有人都指向正确的路径。我遇到了这个问题,因为我有多个IDE,因此有多个可用python.exe的目录。它们指向错误的目录。

在故障排除期间,我还卸载并重新安装了 conda install shapely从PyCharm指向Anaconda目录时进行了。希望能帮助到你。

下面的链接也很有用https://www.jetbrains.com/help/pycharm/installing-uninstalling-and-upgrading-packages.html#conda-package-manager


0

我遇到了同样的问题,要解决该问题,您需要将lib路径添加到ld.so.conf文件。

为此,请打开文件:

sudo vi /etc/ld.so.conf

添加这行

/usr/local/lib

接着

sudo /sbin/ldconfig
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.