[英]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 包,以及以下兩個庫:
我能做些什么來解決這個問題?
使用 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
在你的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
。 希望能幫助到你。
我正在使用 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.