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] :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 | ^~~~~~~~~~ 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?