Could not find library geos_c or load any of its variants
Asked Answered
O

13

114

I use Python in Fedora 19. I wanted to run the following line:

import shapely.geometry

but the following error appears:

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

I installed the package Shapely, and the following two libraries:

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

What can I do to solve the problem?

Omeromero answered 2/11, 2013 at 13:31 Comment(1)
for Centos7 see: #42098001 yum install geos-develVitavitaceous
S
176

Installed shapely using pip, and had the same problem. So I went ahead and installed it like so:

sudo apt-get install libgeos-dev

And it worked. I'm running Ubuntu, so if you're on Fedora, you should run:

sudo yum install geos-devel

On MACOS you can run:

brew install geos
Stillborn answered 14/4, 2014 at 10:15 Comment(4)
On Fedora, it should be sudo yum install geos-develLevkas
on mac OS brew install geosMcdaniels
If installing on ARM such as AWS Graviton2 instances (e.g. t4g instances) you might need sudo yum install geos.aarch64 geos-devel.aarch64Iffy
Thanks, my good friend!!! This saved my life and solved my issue with poetry install and lib shapelyCounterforce
E
9

set the LD_LIBRARY_PATH, then run python

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

python mytest.py
Emergency answered 15/7, 2014 at 11:34 Comment(0)
E
7

I am using Linux (Red Hat) and I got this error:

OSError: /home/[user]/.conda/envs/ox/lib/libgeos_c.so: cannot open shared object file: No such file or directory

What works for me:

conda install geos
Electrojet answered 29/7, 2021 at 17:29 Comment(0)
F
6

Shapely loads geos via ctypes.

Try this in your python and see if you get anything:

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

If it doesn't work, then your geos installation is probably messed up. According to this, your geos should be in /usr/lib/libgeos_c.so.1. Is your library actually there?

Fivespot answered 2/11, 2013 at 18:54 Comment(3)
No result means that python didn't find the library (it returned None). On linux, python uses /sbin/ldconfig -p to find libraries (you can run that command and look for libgeos). I would guess that your geos RPM is missing a dependency or didn't get installed properly.Fivespot
I'm having the same problem. I ran from ctypes.util import find_library find_library('geos_c') And it returned 'libgeos_c.so.1' so it looks like it's there...Igbo
For me, it returned something like: C:\Anaconda3\envs\my_env\Library\bin\geos_c.dll. As I could observe, the libgeos_c.so.1 was not presente within the bin directory, only this 'dll' file.Cowskin
E
5

In ubuntu, the following commands should take care of it. It all goes down to the following packages.

(Original 2017)

sudo apt-get install libgeos-c1 libgeos-3.4.2

EDIT: (updated versions 2020)

sudo apt-get install libgeos-c1v5 libgeos-3.7.1
Eburnation answered 1/5, 2017 at 5:25 Comment(0)
L
3

On Fedora install geos and geos-devel

sudo yum install geos geos-devel
Lots answered 17/2, 2017 at 21:17 Comment(0)
U
2

If you're using Anaconda like I am and ran into this, copy the libgeos* files from /usr/lib to the anaconda/lib directory and try again... :) Hopefully this saves someone else, cause I have spent hours on this.

Unalloyed answered 17/12, 2014 at 0:2 Comment(2)
Do you remember any other step you needed to take? I first installed it via brew and then copied the files to the anaconda lib folder as you suggested, but I'm still getting 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']. when I try to run my script. The strange part was that installing it via brew was enough for pip to start working.Busman
I am using Anaconda on Ubuntu 16 and had similar error, even with libgeos-dev installed previously. The fix for me was conda install geos and after that, within my conda environment pip install shapely worked fine.Alfi
M
2
brew install geos

Just this installation solved my issues.

Muster answered 19/4, 2021 at 9:54 Comment(0)
C
1

I had no problem on Jupyter Notebook but when I used PyCharm I encountered this issue. Tried multiple things windows on machine and the below troubleshooting steps fixed the issue

pip install geos

Go to PyCharm, File->Settings->Project->Project Interpreter(Check you have the right path where your python.exe file is there)->Add enter image description here

Check that, on Virtualenv Environment -> Base Interpreter pointing to the right location where you have the python.exe

Same for System Interpreter->Interpreter And also Pipenv Environment -> Base Interpreter

enter image description here

Make sure all are pointing to the right path. I encountered this problem as I have multiple IDE and hence multiple directories where python.exe is available.They were pointing to incorrect directories.

During the troubleshooting I also uninstalled and re installed conda install shapelyas I am pointing to Anaconda directory from PyCharm. Hope it helps.

Below link is also helpful https://www.jetbrains.com/help/pycharm/installing-uninstalling-and-upgrading-packages.html#conda-package-manager

Calamity answered 14/10, 2019 at 20:56 Comment(0)
A
1

I had still issues after installing geos. What solved it for me (macOS 13.1) was

sudo kmdir /opt/local
sudo ln -s /opt/homebrew/lib /opt/local/lib

to let Shapely find libgeos_c.dylib in one of the locations it was willing to look for it.

Source

Aphasia answered 20/2, 2023 at 13:44 Comment(1)
Should be a better way to solve this, but it works.Ceram
T
0

I had the same problem, and to solve it, you need to add the lib path to ld.so.conf file.

To do this, Open the file:

sudo vi /etc/ld.so.conf

add this line

/usr/local/lib

And then

sudo /sbin/ldconfig
Tytybald answered 25/1, 2016 at 7:29 Comment(0)
A
0

I ran into this problem in alpine linux, and installed geos and the development libraries as follows

apk add geos geos-dev
Arose answered 10/2 at 6:19 Comment(0)
P
-1

If you have macos, you should run:

brew install geos

Source distributions

If you want to build Shapely from source for compatibility with other modules that depend on GEOS (such as cartopy or osgeo.ogr) or want to use a different version of GEOS than the one included in the project wheels you should first install the GEOS library, Cython, and Numpy on your system (using apt, yum, brew, or other means) and then direct pip to ignore the binary wheels.

pip install shapely --no-binary shapely

If you've installed GEOS to a standard location, the geos-config program will be used to get compiler and linker options. If geos-config is not on your executable, it can be specified with a GEOS_CONFIG environment variable, e.g.:

GEOS_CONFIG=/path/to/geos-config pip install shapely
Pixie answered 23/4, 2021 at 14:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.