From: Joel Breazeale <joel.breazeale@gmail.com>
To: cygwin@cygwin.com
Subject: Re: Python 3.9 shapely package build failed
Date: Tue, 12 Sep 2023 21:31:11 -0500 [thread overview]
Message-ID: <CALUJTM7FF+5QDkR02-BceHxekoOLgiXt4FvH2AvZWkOM6Sdocw@mail.gmail.com> (raw)
In-Reply-To: <b374673d-e575-7d09-93e6-427a8885e550@Shaw.ca>
[-- Attachment #1: Type: text/plain, Size: 14025 bytes --]
Brian,
I was not aware of the cygcheck command. I won't forget it! Once
libgeos-devel-3.11.1-1 was installed the build worked great!
Thank you,
Joel Breazeale
On Tue, Sep 12, 2023 at 9:02 PM Brian Inglis <Brian.Inglis@shaw.ca> wrote:
> On 2023-09-12 18:58, Joel Breazeale via Cygwin wrote:
> > 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.
>
> Both are part of the same package.
>
> > 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?
>
> $ cygcheck -p geos_c.h
> Found 3 matches for geos_c.h
> libgeos-devel-3.10.3-1 - libgeos-devel: Geometry Engine for Topology -
> (devel)
> libgeos-devel-3.11.0-1 - libgeos-devel: Geometry Engine for Topology -
> (devel)
> libgeos-devel-3.11.1-1 - libgeos-devel: Geometry Engine for Topology -
> (devel)
> $ cygcheck -p geos-config
> Found 3 matches for geos-config
> libgeos-devel-3.10.3-1 - libgeos-devel: Geometry Engine for Topology -
> (devel)
> libgeos-devel-3.11.0-1 - libgeos-devel: Geometry Engine for Topology -
> (devel)
> libgeos-devel-3.11.1-1 - libgeos-devel: Geometry Engine for Topology -
> (devel)
>
> Neither is installed, because to build library code you typically need to
> have
> installed a [lib]...-devel package, which other packages do not usually
> depend on.
>
> Check the prereqs in python, then check the Cygwin packages that provide
> packages with that root name, then install them, before trying pip
> install,
> which is outside of Cygwin packaging, so you need to do everything
> yourself!
>
> If in doubt, you can just install everything which matches geos or
> whatever!
>
> --
> Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
>
> La perfection est atteinte Perfection is achieved
> non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to
> add
> mais lorsqu'il n'y a plus rien à retirer but when there is no more to
> cut
> -- Antoine de Saint-Exupéry
>
>
prev parent reply other threads:[~2023-09-13 2:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-13 0:58 Joel Breazeale
2023-09-13 2:02 ` Brian Inglis
2023-09-13 2:31 ` Joel Breazeale [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALUJTM7FF+5QDkR02-BceHxekoOLgiXt4FvH2AvZWkOM6Sdocw@mail.gmail.com \
--to=joel.breazeale@gmail.com \
--cc=cygwin@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).