Could not find library geos_c or load any of its variants

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?


Solution 1:

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

Solution 2:

set the LD_LIBRARY_PATH, then run python

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

python mytest.py

Solution 3:

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

Solution 4:

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?

Solution 5:

On Fedora install geos and geos-devel

sudo yum install geos geos-devel