jgrss/geowombat

Extra install examples fail; coreg extra builds unwanted GDAL version

jgrss opened this issue · 3 comments

jgrss commented

Installed GDAL 3.3.2

gdalinfo --version
GDAL 3.3.2, released 2021/09/01

Installed virtualenv

pyenv virtualenv 3.8.12 venv.gw
pyenv activate venv.gw

Installed Python GDAL 3.3.2

(venv.gw) pip install GDAL==3.3.2
(venv.gw) python -c "from osgeo import gdal;print(gdal.__version__)"
3.3.2

Installing GeoWombat with no extras works fine

(venv.gw) pip install git+https://github.com/jgrss/geowombat.git

Installing GeoWombat with any extra using the suggested method from the online documentation fails. E.g., the following line does not work:

(venv.gw) pip install git+https://github.com/jgrss/geowombat.git#egg=project[stac]

Installing GeoWombat with an extra using the following method works

(venv.gw) pip install "geowombat[stac]@git+https://github.com/jgrss/geowombat.git"

Installing GeoWombat with multiple extras that include 'coreg' fails

(venv.gw) pip install "geowombat[ml,coreg,stac,perf,tests]@git+https://github.com/jgrss/geowombat.git"

For some reason, the command above initiates a Python GDAL build even when Python GDAL is already installed. For example, an attempted build for GDAL==3.5.* occurs even though I have GDAL=3.3.2 installed.

Removing the 'coreg' extra works

(venv.gw) pip install "geowombat[ml,stac,perf,tests]@git+https://github.com/jgrss/geowombat.git"

This issue stems from arosics, which has a gdal requirement. However, there is no GDAL version requirement specified, so I am not sure why pip is attempting to install a higher version.

Solution to install the 'coreg' extra and avoid an unwanted GDAL upgrade.

First, arosics will be removed from the 'coreg' extra list in geowombat. Then, using the following command, all dependencies can be installed without pip installing GDAL.

(venv.gw) pip install arosics>=1.7.8 --no-deps && pip install "geowombat[coreg]@git+https://github.com/jgrss/geowombat.git"

TODO

  1. Change online documentation to use the pip install "geowombat[extra]@git+https://github.com/jgrss/geowombat.git" extra install format.
  2. Fix setup.cfg to remove arosics.
  3. Provide install example specific to the 'coreg' extra as pip install arosics>=1.7.8 --no-deps && pip install "geowombat[coreg]@git+https://github.com/jgrss/geowombat.git".
jgrss commented

Fixed in #217

@jgrss I'm getting an error on pip installing any extras. For instance

RUN pip install "geowombat[ml,stac,perf]@git+https://github.com/jgrss/geowombat.git"
Collecting geowombat[ml,stac,time]@ git+https://github.com/jgrss/geowombat.git
  Cloning https://github.com/jgrss/geowombat.git to /tmp/pip-install-jzkuksq6/geowombat_a1b7206208c64d72bca47912a123b104
  Running command git clone --filter=blob:none --quiet https://github.com/jgrss/geowombat.git /tmp/pip-install-jzkuksq6/geowombat_a1b7206208c64d72bca47912a123b104
  Resolved https://github.com/jgrss/geowombat.git to commit 271c9ee1f6cad39aa92cacdd029778bdab302c05
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
  WARNING: Generating metadata for package geowombat produced metadata for project name unknown. Fix your #egg=geowombat fragments.
Discarding git+https://github.com/jgrss/geowombat.git: Requested unknown from git+https://github.com/jgrss/geowombat.git has inconsistent name: filename has 'geowombat', but metadata has 'unknown'
ERROR: Could not find a version that satisfies the requirement geowombat (unavailable) (from versions: none)
ERROR: No matching distribution found for geowombat (unavailable)
The command '/bin/sh -c pip install "geowombat[stac,ml,time]@git+https://github.com/jgrss/geowombat.git"' returned a non-zero code: 1

@jgrss sorry seems to be related to my docker build not pip install