ipeaGIT / geobr

Easy access to official spatial data sets of Brazil in R and Python
https://ipeagit.github.io/geobr/
778 stars 116 forks source link

Unable to install on Windows #359

Open GitHunter0 opened 1 month ago

GitHunter0 commented 1 month ago

Hey folks, I'm not able to install geobr.

Here my commands:

conda create -n newenv python=3.12 geopandas fiona -c conda-forge
conda activate newenv 
pip install geobr   

I get this error message (very similar to #336):

Collecting geobr
  Using cached geobr-0.2.1-py3-none-any.whl.metadata (4.1 kB)
Requirement already satisfied: geopandas<0.15.0,>=0.14.0 in c:\users\user1\miniconda3\envs\py312\lib\site-packages (from geobr) (0.14.4)
Collecting lxml<6.0.0,>=5.1.0 (from geobr)
  Using cached lxml-5.2.2-cp312-cp312-win_amd64.whl.metadata (3.5 kB)
Requirement already satisfied: requests<3.0.0,>=2.25.1 in c:\users\user1\miniconda3\envs\py312\lib\site-packages (from geobr) (2.32.3)
Collecting shapely<2.0.0,>=1.7.0 (from geobr)
  Using cached Shapely-1.8.5.post1.tar.gz (200 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
  ╰─> [33 lines of output]
      Traceback (most recent call last):
        File "C:\Users\user1\miniconda3\envs\py312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "C:\Users\user1\miniconda3\envs\py312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\user1\miniconda3\envs\py312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 112, in get_requires_for_build_wheel
          backend = _build_backend()
                    ^^^^^^^^^^^^^^^^
        File "C:\Users\user1\miniconda3\envs\py312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 77, in _build_backend
          obj = import_module(mod_path)
                ^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\user1\miniconda3\envs\py312\Lib\importlib\__init__.py", line 90, in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
        File "<frozen importlib._bootstrap_external>", line 995, in exec_module
        File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
        File "C:\Users\user1\AppData\Local\Temp\pip-build-env-057xnk8t\overlay\Lib\site-packages\setuptools\__init__.py", line 16, in <module>
          import setuptools.version
        File "C:\Users\user1\AppData\Local\Temp\pip-build-env-057xnk8t\overlay\Lib\site-packages\setuptools\version.py", line 1, in <module>
          import pkg_resources
        File "C:\Users\user1\AppData\Local\Temp\pip-build-env-057xnk8t\overlay\Lib\site-packages\pkg_resources\__init__.py", line 2191, in <module>
          register_finder(pkgutil.ImpImporter, find_on_path)
                          ^^^^^^^^^^^^^^^^^^^
      AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
      [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.

I suspect this issue occurs because geobr does not allow the latest version of shapely, which is 2.0.4.

Is there a workaround until a fix is available?

Thank you

Windows 10 Pro
Python 3.12.3

attrs                     23.2.0             pyh71513ae_0    conda-forge
aws-c-auth                0.7.22               ha390a07_2    conda-forge
aws-c-cal                 0.6.14               h750c3ff_1    conda-forge
aws-c-common              0.9.19               h2466b09_0    conda-forge
aws-c-compression         0.2.18               h750c3ff_6    conda-forge
aws-c-event-stream        0.4.2               he05106e_12    conda-forge
aws-c-http                0.8.1               h55c4ea9_17    conda-forge
aws-c-io                  0.14.8               ha255af7_5    conda-forge
aws-c-mqtt                0.10.4               heb8cf2b_4    conda-forge
aws-c-s3                  0.5.9                haf5e0f7_3    conda-forge
aws-c-sdkutils            0.1.16               h750c3ff_2    conda-forge
aws-checksums             0.1.18               h750c3ff_6    conda-forge
aws-crt-cpp               0.26.9               hb2f7e64_0    conda-forge
aws-sdk-cpp               1.11.329             h752cf48_3    conda-forge
azure-core-cpp            1.11.1               h249a519_1    conda-forge
azure-identity-cpp        1.6.0                h91493d7_1    conda-forge
azure-storage-blobs-cpp   12.10.0              h91493d7_1    conda-forge
azure-storage-common-cpp  12.5.0               h91493d7_4    conda-forge
blosc                     1.21.5               hbd69f2e_1    conda-forge
branca                    0.7.2              pyhd8ed1ab_0    conda-forge
brotli                    1.1.0                hcfcfb64_1    conda-forge
brotli-bin                1.1.0                hcfcfb64_1    conda-forge
brotli-python             1.1.0           py312h53d5487_1    conda-forge
bzip2                     1.0.8                hcfcfb64_5    conda-forge
c-ares                    1.28.1               hcfcfb64_0    conda-forge
ca-certificates           2024.6.2             h56e8100_0    conda-forge
cairo                     1.18.0               h1fef639_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cfitsio                   4.4.0                h9b0cee5_1    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           win_pyh7428d3b_0    conda-forge
click-plugins             1.1.1                      py_0    conda-forge
cligj                     0.7.2              pyhd8ed1ab_1    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
contourpy                 1.2.1           py312h0d7def4_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
expat                     2.6.2                h63175ca_0    conda-forge
fiona                     1.9.6           py312h4a86439_3    conda-forge
fmt                       10.2.1               h181d51b_0    conda-forge
folium                    0.16.0             pyhd8ed1ab_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 h77eed37_2    conda-forge
fontconfig                2.14.2               hbde0cde_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fonttools                 4.53.0          py312h4389bb4_0    conda-forge
freetype                  2.12.1               hdaf720e_2    conda-forge
freexl                    2.0.0                h8276f4a_0    conda-forge
gdal                      3.9.0           py312h7090a6d_5    conda-forge
geopandas                 0.14.4             pyhd8ed1ab_0    conda-forge
geopandas-base            0.14.4             pyha770c72_0    conda-forge
geos                      3.12.1               h1537add_0    conda-forge
geotiff                   1.7.3                hfbd0779_0    conda-forge
hdf4                      4.2.15               h5557f11_7    conda-forge
hdf5                      1.14.3          nompi_h2b43c12_105    conda-forge
icu                       73.2                 h63175ca_0    conda-forge
idna                      3.7                pyhd8ed1ab_0    conda-forge
intel-openmp              2024.1.0           h57928b3_966    conda-forge
jinja2                    3.1.4              pyhd8ed1ab_0    conda-forge
joblib                    1.4.2              pyhd8ed1ab_0    conda-forge
kealib                    1.5.3                h6c43f9b_1    conda-forge
kiwisolver                1.4.5           py312h0d7def4_1    conda-forge
krb5                      1.21.2               heb0366b_0    conda-forge
lcms2                     2.16                 h67d730c_0    conda-forge
lerc                      4.0.0                h63175ca_0    conda-forge
libabseil                 20240116.2      cxx17_h63175ca_0    conda-forge
libaec                    1.1.3                h63175ca_0    conda-forge
libarchive                3.7.4                haf234dc_0    conda-forge
libblas                   3.9.0              22_win64_mkl    conda-forge
libboost-headers          1.85.0               h57928b3_1    conda-forge
libbrotlicommon           1.1.0                hcfcfb64_1    conda-forge
libbrotlidec              1.1.0                hcfcfb64_1    conda-forge
libbrotlienc              1.1.0                hcfcfb64_1    conda-forge
libcblas                  3.9.0              22_win64_mkl    conda-forge
libcrc32c                 1.1.2                h0e60522_0    conda-forge
libcurl                   8.8.0                hd5e4a3a_0    conda-forge
libdeflate                1.20                 hcfcfb64_0    conda-forge
libexpat                  2.6.2                h63175ca_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libgdal                   3.9.0                h4f813f3_5    conda-forge
libglib                   2.80.2               h0df6a38_0    conda-forge
libgoogle-cloud           2.24.0               h5e7cea3_0    conda-forge
libgoogle-cloud-storage   2.24.0               hce61461_0    conda-forge
libgrpc                   1.62.2               h5273850_0    conda-forge
libhwloc                  2.10.0          default_h8125262_1001    conda-forge
libiconv                  1.17                 hcfcfb64_2    conda-forge
libintl                   0.22.5               h5728263_2    conda-forge
libjpeg-turbo             3.0.0                hcfcfb64_1    conda-forge
libkml                    1.3.0             haf3e7a6_1018    conda-forge
liblapack                 3.9.0              22_win64_mkl    conda-forge
libnetcdf                 4.9.2           nompi_h07c049d_113    conda-forge
libpng                    1.6.43               h19919ed_0    conda-forge
libpq                     16.3                 hab9416b_0    conda-forge
libprotobuf               4.25.3               h503648d_0    conda-forge
libre2-11                 2023.09.01           hf8d8778_2    conda-forge
librttopo                 1.1.0               h94c4f80_15    conda-forge
libspatialindex           1.9.3                h5a68840_5    conda-forge
libspatialite             5.1.0                h1b08085_6    conda-forge
libsqlite                 3.45.3               hcfcfb64_0    conda-forge
libssh2                   1.11.0               h7dfc565_0    conda-forge
libtiff                   4.6.0                hddb2be6_3    conda-forge
libwebp-base              1.4.0                hcfcfb64_0    conda-forge
libxcb                    1.15                 hcd874cb_0    conda-forge
libxml2                   2.12.7               h283a6d9_1    conda-forge
libzip                    1.10.1               h1d365fa_3    conda-forge
libzlib                   1.3.1                h2466b09_1    conda-forge
lz4-c                     1.9.4                hcfcfb64_0    conda-forge
lzo                       2.10              hcfcfb64_1001    conda-forge
m2w64-gcc-libgfortran     5.3.0                         6    conda-forge
m2w64-gcc-libs            5.3.0                         7    conda-forge
m2w64-gcc-libs-core       5.3.0                         7    conda-forge
m2w64-gmp                 6.1.0                         2    conda-forge
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    conda-forge
mapclassify               2.6.1              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py312he70551f_0    conda-forge
matplotlib-base           3.8.4           py312hfee7060_2    conda-forge
minizip                   4.0.6                hb638d1e_0    conda-forge
mkl                       2024.1.0           h66d3029_692    conda-forge
msys2-conda-epoch         20160418                      1    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
networkx                  3.3                pyhd8ed1ab_1    conda-forge
numpy                     1.26.4          py312h8753938_0    conda-forge
openjpeg                  2.5.2                h3d672ee_0    conda-forge
openssl                   3.3.1                h2466b09_0    conda-forge
packaging                 24.0               pyhd8ed1ab_0    conda-forge
pandas                    2.2.2           py312h72972c8_1    conda-forge
pcre2                     10.43                h17e33f8_0    conda-forge
pillow                    10.3.0          py312h6f6a607_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
pixman                    0.43.4               h63175ca_0    conda-forge
poppler                   24.04.0              h747fd5a_0    conda-forge
poppler-data              0.4.12               hd8ed1ab_0    conda-forge
postgresql                16.3                 h7f155c9_0    conda-forge
proj                      9.4.0                he13c7e8_1    conda-forge
pthread-stubs             0.4               hcd874cb_1001    conda-forge
pthreads-win32            2.9.1                hfa6e2cd_3    conda-forge
pyparsing                 3.1.2              pyhd8ed1ab_0    conda-forge
pyproj                    3.6.1           py312h616b599_6    conda-forge
pysocks                   1.7.1              pyh0701188_6    conda-forge
python                    3.12.3          h2628c8c_0_cpython    conda-forge
python-dateutil           2.9.0              pyhd8ed1ab_0    conda-forge
python-tzdata             2024.1             pyhd8ed1ab_0    conda-forge
python_abi                3.12                    4_cp312    conda-forge
pytz                      2024.1             pyhd8ed1ab_0    conda-forge
re2                       2023.09.01           hd3b24a8_2    conda-forge
requests                  2.32.3             pyhd8ed1ab_0    conda-forge
rtree                     1.2.0           py312h72b5f30_0    conda-forge
scikit-learn              1.5.0           py312h816cc57_1    conda-forge
scipy                     1.13.1          py312h1f4e10d_0    conda-forge
setuptools                70.0.0             pyhd8ed1ab_0    conda-forge
shapely                   2.0.4           py312h91267bd_1    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.2.0                hfb803bf_1    conda-forge
spdlog                    1.13.0               h64d2f7d_0    conda-forge
sqlite                    3.45.3               hcfcfb64_0    conda-forge
tbb                       2021.12.0            hc790b64_1    conda-forge
threadpoolctl             3.5.0              pyhc1e730c_0    conda-forge
tiledb                    2.23.0               h98cc7b1_2    conda-forge
tk                        8.6.13               h5226925_1    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
uriparser                 0.9.8                h5a68840_0    conda-forge
urllib3                   2.2.1              pyhd8ed1ab_0    conda-forge
vc                        14.3                ha32ba9b_20    conda-forge
vc14_runtime              14.38.33135         h835141b_20    conda-forge
vs2015_runtime            14.38.33135         h22015db_20    conda-forge
wheel                     0.43.0             pyhd8ed1ab_1    conda-forge
win_inet_pton             1.1.0              pyhd8ed1ab_6    conda-forge
xerces-c                  3.2.5                h63175ca_0    conda-forge
xorg-libxau               1.0.11               hcd874cb_0    conda-forge
xorg-libxdmcp             1.1.3                hcd874cb_0    conda-forge
xyzservices               2024.4.0           pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge
zlib                      1.3.1                h2466b09_1    conda-forge
zstd                      1.5.6                h0ea2cb4_0    conda-forge
rafapereirabr commented 3 weeks ago

@BAFurtado , is there a way we could allow for more recent versions of shapely?

BAFurtado commented 3 weeks ago

I wouldn't know the interdependencies of spatial libraries. I suggest using the poetry package management as per the documentation description or using conda with the poetry dependencies as listed geopandas = "^0.14.0" shapely = "^1.7.0" python = "^3.9" requests = "^2.25.1" lxml = "^5.1.0" html5lib = "1.1". To allow for more recent versions we would have to examine the changelog of shapely and adjust accordingly while making sure all of the other geospatial libraries (gdal, fiona, geopandas) also maintain compatibility. I hope that helps, best,

GitHunter0 commented 3 weeks ago

Thank you @BAFurtado , I will try your suggestion.

And I believe the optimum time to update geobr dependencies would be when pandas 3.0 is released this year (there will be breaking changes for many packages due to numpy 2.0 as well).