Python, GEOS and Shapely on Windows 64
-
21-07-2021 - |
Question
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!
Solution
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.
OTHER TIPS
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
There is an version of Shapely available here that includes geos in the installer. Look at the bottom of the page.
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.
I used the command below and it did work;
pip install Shapely==1.3.0
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.