繁体   English   中英

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

[英]Could not find library geos_c or load any of its variants

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

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

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

sudo apt-get install libgeos-dev

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

sudo yum install geos-devel

在 MACOS 上,您可以运行:

brew install geos

设置LD_LIBRARY_PATH ,然后运行 ​​python

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

python mytest.py

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

(2017 年原版)

sudo apt-get install libgeos-c1 libgeos-3.4.2

编辑:(更新版本 2020)

sudo apt-get install libgeos-c1v5 libgeos-3.7.1

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

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

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

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

在 Fedora 上安装 geos 和 geos-devel

sudo yum install geos geos-devel

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

brew install geos

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

我在 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 可用的目录。它们指向不正确的目录。

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

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

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

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

什么对我有用:

conda install geos

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

为此,请打开文件:

sudo vi /etc/ld.so.conf

添加这一行

/usr/local/lib

接着

sudo /sbin/ldconfig

如果你有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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM