82

我在 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。

我能做些什么来解决这个问题?

4

11 回答 11

126

使用 pip 安装得体,并且遇到了同样的问题。所以我继续安装它,如下所示:

sudo apt-get install libgeos-dev

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

sudo yum install geos-devel
于 2014-04-14T10:15:03.497 回答
7

设置LD_LIBRARY_PATH,然后运行 ​​python

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

python mytest.py
于 2014-07-15T11:34:32.890 回答
5

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

(2017 年原版)

sudo apt-get install libgeos-c1 libgeos-3.4.2

编辑:(更新版本 2020)

sudo apt-get install libgeos-c1v5 libgeos-3.7.1
于 2017-05-01T05:25:53.047 回答
4

匀称地通过ctypes加载地理信息

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

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

如果它不起作用,那么您的 geos 安装可能搞砸了。据此您的 geos 应该在/usr/lib/libgeos_c.so.1. 你的图书馆真的在那里吗?

于 2013-11-02T18:54:36.360 回答
3

在 Fedora 上安装 geos 和 geos-devel

sudo yum install geos geos-devel
于 2017-02-17T21:17:35.953 回答
2

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

于 2014-12-17T00:02:11.760 回答
1

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

pip install geos

转到 PyCharm,文件->设置->项目->项目解释器(检查您的 python.exe 文件所在的路径是否正确)->添加在此处输入图像描述

检查一下,在 Virtualenv Environment -> Base Interpreter 指向你有 python.exe 的正确位置

System Interpreter->Interpreter 和 Pipenv Environment -> Base Interpreter 相同

在此处输入图像描述

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

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

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

于 2019-10-14T20:56:19.477 回答
1

我正在使用 Linux (Red Hat),我收到了这个错误:

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

什么对我有用:

conda install geos
于 2021-07-29T17:29:34.953 回答
1
brew install geos

只是这个安装解决了我的问题。

于 2021-04-19T09:54:35.390 回答
0

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

为此,请打开文件:

sudo vi /etc/ld.so.conf

添加这一行

/usr/local/lib

接着

sudo /sbin/ldconfig
于 2016-01-25T07:29:58.800 回答
-1

如果你有macos,你应该运行:

brew install geos

源分布

如果您想从源代码构建 Shapely 以与其他依赖于 GEOS 的模块(例如 cartopy 或 osgeo.ogr)兼容,或者想使用与项目轮子中包含的版本不同的 GEOS 版本,您应该首先安装 GEOS 库、Cython 和 Numpy(使用 apt、yum、brew 或其他方式),然后直接 pip 忽略二进制轮子。

pip install shapely --no-binary shapely

如果您已将 GEOS 安装到标准位置,则 geos-config 程序将用于获取编译器和链接器选项。如果 geos-config 不在您的可执行文件上,可以使用 GEOS_CONFIG 环境变量指定它,例如:

GEOS_CONFIG=/path/to/geos-config pip install shapely
于 2021-04-23T14:44:56.670 回答