Skip to content

pygeos dependency causing installation to fail #157

@PatBall1

Description

@PatBall1

Pygeos causes installation to fail on macOS 15 as reported by Fei Qi:

But when I ran “pip install git+https://github.com/PatBall1/detectree2.git”,Error happened to me,I really need your help, thx a lot

The result is:


Collecting git+https://github.com/PatBall1/detectree2.git

  Cloning https://github.com/PatBall1/detectree2.git to /private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-req-build-5eraprcl

  Running command git clone --filter=blob:none --quiet https://github.com/PatBall1/detectree2.git /private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-req-build-5eraprcl

  Resolved https://github.com/PatBall1/detectree2.git to commit c983eda802daa7286d8f7eb37dbaf1751254c68d

  Preparing metadata (setup.py) ... done

Collecting detectron2@ git+https://github.com/facebookresearch/detectron2.git (from detectree2==1.1.0)

  Cloning https://github.com/facebookresearch/detectron2.git to /private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-install-w1hdjfjg/detectron2_2a90086c30ad400fb9d870d88eb03909

  Running command git clone --filter=blob:none --quiet https://github.com/facebookresearch/detectron2.git /private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-install-w1hdjfjg/detectron2_2a90086c30ad400fb9d870d88eb03909

  Resolved https://github.com/facebookresearch/detectron2.git to commit c69939aa85460e8135f40bce908a6cddaa73065f

  Preparing metadata (setup.py) ... done

Collecting pyyaml>=5.1 (from detectree2==1.1.0)

  Using cached PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl.metadata (2.1 kB)

Collecting GDAL>=1.11 (from detectree2==1.1.0)

  Using cached gdal-3.10.tar.gz (848 kB)

  Installing build dependencies ... done

  Getting requirements to build wheel ... done

  Preparing metadata (pyproject.toml) ... done

Requirement already satisfied: numpy in ./venv/lib/python3.12/site-packages (from detectree2==1.1.0) (2.1.3)

Collecting rtree (from detectree2==1.1.0)

  Using cached Rtree-1.3.0-py3-none-macosx_11_0_arm64.whl.metadata (2.1 kB)

Collecting proj (from detectree2==1.1.0)

  Using cached proj-0.2.0-py2.py3-none-any.whl.metadata (3.3 kB)

Collecting geos (from detectree2==1.1.0)

  Using cached geos-0.2.3-py3-none-any.whl.metadata (480 bytes)

Collecting pypng (from detectree2==1.1.0)

  Using cached pypng-0.20220715.0-py3-none-any.whl.metadata (13 kB)

Collecting pygeos (from detectree2==1.1.0)

  Using cached pygeos-0.14.tar.gz (141 kB)

  Installing build dependencies ... done

  Getting requirements to build wheel ... error

  error: subprocess-exited-with-error

  

  × Getting requirements to build wheel did not run successfully.

  │ exit code: 1

  ╰─> [34 lines of output]

      <string>:8: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

      /private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-install-w1hdjfjg/pygeos_1e70e5e9d2af48c7819e9f91d96a22e2/versioneer.py:421: SyntaxWarning: invalid escape sequence '\s'

        LONG_VERSION_PY['git'] = '''

      Compiling pygeos/_geometry.pyx because it changed.

      Compiling pygeos/_geos.pyx because it changed.

      [1/2] Cythonizing pygeos/_geometry.pyx

      [2/2] Cythonizing pygeos/_geos.pyx

      Traceback (most recent call last):

        File "/Users/lemon/Documents/detectree/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>

          main()

        File "/Users/lemon/Documents/detectree/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main

          json_out['return_val'] = hook(**hook_input['kwargs'])

                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

        File "/Users/lemon/Documents/detectree/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel

          return hook(config_settings)

                 ^^^^^^^^^^^^^^^^^^^^^

        File "/private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-build-env-9phgd3xo/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel

          return self._get_build_requires(config_settings, requirements=[])

                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

        File "/private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-build-env-9phgd3xo/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires

          self.run_setup()

        File "/private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-build-env-9phgd3xo/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 320, in run_setup

          exec(code, locals())

        File "<string>", line 214, in <module>

        File "/private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-install-w1hdjfjg/pygeos_1e70e5e9d2af48c7819e9f91d96a22e2/versioneer.py", line 1480, in get_version

          return get_versions()["version"]

                 ^^^^^^^^^^^^^^

        File "/private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-install-w1hdjfjg/pygeos_1e70e5e9d2af48c7819e9f91d96a22e2/versioneer.py", line 1412, in get_versions

          cfg = get_config_from_root(root)

                ^^^^^^^^^^^^^^^^^^^^^^^^^^

        File "/private/var/folders/y4/y6253cy573xf2dc3n2437q6m0000gn/T/pip-install-w1hdjfjg/pygeos_1e70e5e9d2af48c7819e9f91d96a22e2/versioneer.py", line 342, in get_config_from_root

          parser = configparser.SafeConfigParser()

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

      AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'?

      [end of output]

  

  note: This error originates from a subprocess, and is likely not a problem with pip.

error: subprocess-exited-with-error



× Getting requirements to build wheel did not run successfully.

│ exit code: 1

╰─> See above for output.



note: This error originates from a subprocess, and is likely not a problem with pip.```


The requirement pygeos fails to install with python 3.12 with the error described here: [pygeos/pygeos#463](https://github.com/pygeos/pygeos/issues/463)

The maintainer explains that pygeos is no longer maintained and has been merged into the shapley 2.0 dependency of geopandas. Since version 0.14, geopandas uses shapley instead of pygeos: https://geopandas.org/en/stable/docs/user_guide/pygeos_to_shapely.html

Therefore, the PR drops the unmaintained pygeos and requires geopandas >= 0.14 to ensure the default shapley version is used

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions