簡體   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