The shapely Python 3.9 package is failing to build. Please see the
messages in red and the one in green below:
[bin]$ /usr/local/bin/pip3.9 install shapely
Collecting shapely
Using cached shapely-2.0.1.tar.gz (275 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.14 in
/usr/local/lib/python3.9/site-packages (from shapely) (1.25.2)
Building wheels for collected packages: shapely
Building wheel for shapely (pyproject.toml) ... error
error: *subprocess-exited-with-error*
× Building wheel for shapely (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [103 lines of output]
<string>:8: DeprecationWarning: pkg_resources is deprecated as an
API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
Could not find geos-config executable. Either append the path to
geos-config to PATH or manually provide the include_dirs, library_dirs,
libraries and other link args for compiling against a GEOS version >=3.5.
running bdist_wheel
running build
running build_py
creating build
creating build/lib.cygwin-3.4.9-x86_64-cpython-39
creating build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/affinity.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/constructive.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/coordinates.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/coords.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/creation.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/decorators.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/errors.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/geos.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/io.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/linear.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/measurement.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/ops.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/plotting.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/predicates.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/prepared.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/set_operations.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/speedups.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/strtree.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/testing.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/validation.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/wkb.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/wkt.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/_enum.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/_geometry.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/_ragged_array.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/_version.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/__init__.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
creating build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/algorithms
copying shapely/algorithms/cga.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/algorithms
copying shapely/algorithms/polylabel.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/algorithms
copying shapely/algorithms/__init__.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/algorithms
creating build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/base.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/collection.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/conftest.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/geo.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/linestring.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/multilinestring.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/multipoint.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/multipolygon.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/point.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/polygon.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
copying shapely/geometry/__init__.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/geometry
creating build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/common.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_constructive.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_coordinates.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_creation.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_creation_indices.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_geometry.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_io.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_linear.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_measurement.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_misc.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_plotting.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_predicates.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_ragged_array.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_set_operations.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_strtree.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/test_testing.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
copying shapely/tests/__init__.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests
creating build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/vectorized
copying shapely/vectorized/__init__.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/vectorized
creating
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_collection.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_coords.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_decimal.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_emptiness.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_format.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_geometry_base.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_hash.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_linestring.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_multi.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_multilinestring.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_multipoint.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_multipolygon.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_point.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/test_polygon.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/tests/geometry/__init__.py ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/tests/geometry
copying shapely/_geos.pxd ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
copying shapely/_pygeos_api.pxd ->
build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely
UPDATING build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/_version.py
set build/lib.cygwin-3.4.9-x86_64-cpython-39/shapely/_version.py to
'2.0.1'
running build_ext
building 'shapely.lib' extension
creating build/temp.cygwin-3.4.9-x86_64-cpython-39
creating build/temp.cygwin-3.4.9-x86_64-cpython-39/src
gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall
-I/usr/include/python3.9
-I/tmp/pip-build-env-udfc5yaz/overlay/lib/python3.9/site-packages/numpy/core/include
-c src/c_api.c -o build/temp.cygwin-3.4.9-x86_64-cpython-39/src/c_api.o
In file included from src/c_api.h:22,
from src/c_api.c:15:
src/geos.h:15:10: fatal error: geos_c.h: No such file or directory
15 | #include <geos_c.h>
| ^~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a
problem with pip.
ERROR: Failed building wheel for shapely
Failed to build shapely
ERROR: Could not build wheels for shapely, which is required to install
pyproject.toml-based projects
[bin]$
I presume the inability to find geos-config then caused geos_c.h to not be
able to be found.
I have shapely installed and working under Homebrew (Python 3.11.5), Oracle
Linux 9.2 under VirtualBox (Python 3.9.16) and Oracle Linux 8 (Python
3.11.4), just not under cygwin.
What do you think is the fix for this issue?
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple