23

When trying to install Shapely on my Windows 64bit computer, I cannot get the GEOS library to work.

So far, I have run the OSGeo4W installer from which I installed GDAL (I believe the geos library is included in that package). After that, I checked and I have geos_c.dll on my C:\OSGeo4W\bin directory, but either I have missed some configuration steps or the library does not work.

I need Shapely to work, so I also ran pip install shapely after installing GDAL, and it apparently worked (although it could not find the C library for GEOS).

In my code, I can import Shapely, but when I try to use it, I get an error telling me "geos.dll" is not found.

Any help with this will be very appreciated. Thanks!

Nathan Villaescusa
  • 16,541
  • 3
  • 50
  • 54
Juan Carlos Coto
  • 10,880
  • 20
  • 54
  • 100

6 Answers6

21

Anaconda/Miniconda users should install Shapely (and dependencies) with:

conda install shapely

As of 2020, other Python users can install binary wheels from PyPI with pip:

pip install shapely

(you may need --upgrade to get at least version 1.7.0, when binary wheels were added.) Note that binary wheels are not available for Python 2 on Windows.


Another resource for Windows users with Python installed from python.org, Christoph Gohlke maintains an excellent pool of Unofficial Windows Binaries for Python. Download the Shapely wheels for 32- or 64-bit versions of Python, which includes GEOS dependencies.

Mike T
  • 38,021
  • 17
  • 143
  • 186
  • 10
    Make sure you install the version that matches your Python installation, NOT your OS. I made the mistake of installing the 64 bit shapely since I'm running 64 bit Windows, but my Python is 32 bit, and it gave me a similar "geos_c.dll" is not found. – Tanner Semerad Sep 24 '13 at 00:17
6

see my answer here https://stackoverflow.com/a/50623996/1683626

on windows 10, python 3.6.5 64bit

  • install osgeo4w
  • add installed folder to path e.g. C:\OSGeo4W64\bin (must contain geos_c.dll)
  • restart command line
Jozef Cechovsky
  • 2,949
  • 2
  • 27
  • 43
4

There is an version of Shapely available here that includes geos in the installer. Look at the bottom of the page.

RickyA
  • 14,690
  • 5
  • 65
  • 93
  • This version is from 2010-04-13, and was compiled for 32-bit Python 2.4, 2.5 and 2.6. – Mike T Apr 16 '14 at 11:00
  • 1
    you can find newer versions by modifying the version number in the url. E.g. [version 1.3.0](https://pypi.python.org/pypi/Shapely/1.3.0) is from 2014 and works with python 2.7 and 3.3 – joelostblom Mar 23 '15 at 14:25
2

I tried the method of @jozef but failed even I imported the folder to the path.

A straightforward solution: add geos_c.dll, geos.dll to the library folder of your python environment. Then it works.

Dharman
  • 26,923
  • 21
  • 73
  • 125
will gu
  • 21
  • 2
1

I used the command below and it did work;

pip install Shapely==1.3.0

Farsh
  • 47
  • 4
1

I've made it installing wheels for GDAL (and Fiona, in my case; might not be required) from https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal Providing a path to the geos_c.dll didn't work. Neither putting them into venv/Lib.

olepinto
  • 303
  • 3
  • 7