openml / automlbenchmark

OpenML AutoML Benchmarking Framework
https://openml.github.io/automlbenchmark
MIT License
391 stars 130 forks source link

Building a new docker image fails #490

Open PGijsbers opened 1 year ago

PGijsbers commented 1 year ago

Running python runbenchmark.py tpot example test -m docker fails. Host machine MacOS 12.4, Python 3.8.9, using master. The output reads:

#18 322.5 Collecting tables==3.6.1
#18 322.5   Downloading tables-3.6.1.tar.gz (4.6 MB)
#18 322.6      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.6/4.6 MB 74.0 MB/s eta 0:00:00
#18 322.8   Preparing metadata (setup.py): started
#18 322.9   Preparing metadata (setup.py): finished with status 'error'
#18 322.9   error: subprocess-exited-with-error
#18 322.9   
#18 322.9   × python setup.py egg_info did not run successfully.
#18 322.9   │ exit code: 1
#18 322.9   ╰─> [12 lines of output]
#18 322.9       /tmp/H5closeqb06dfk6.c: In function ‘main’:
#18 322.9       /tmp/H5closeqb06dfk6.c:2:5: warning: implicit declaration of function ‘H5close’ [-Wimplicit-function-declaration]
#18 322.9            H5close();
#18 322.9            ^~~~~~~
#18 322.9       /usr/bin/ld: cannot find -lhdf5
#18 322.9       collect2: error: ld returned 1 exit status
#18 322.9       * Using Python 3.7.13 (default, Apr 24 2022, 01:04:09)
#18 322.9       * USE_PKGCONFIG: False
#18 322.9       .. ERROR:: Could not find a local HDF5 installation.
#18 322.9          You may need to explicitly state where your local HDF5 headers and
#18 322.9          library can be found by setting the ``HDF5_DIR`` environment
#18 322.9          variable or by using the ``--hdf5`` command-line option.
#18 322.9       [end of output]
#18 322.9   
#18 322.9   note: This error originates from a subprocess, and is likely not a problem with pip.
#18 322.9 error: metadata-generation-failed
#18 322.9 
#18 322.9 × Encountered error while generating package metadata.
#18 322.9 ╰─> See above for output.

[...]

#18 ERROR: executor failed running [/bin/sh -c (grep -v '^\s*#' | xargs -L 1 $PIP install --no-cache-dir) < requirements.txt]: exit code: 123
------
 > [14/15] RUN (grep -v '^\s*#' | xargs -L 1 /bench/venv/bin/python3.7 -m pip install --no-cache-dir) < requirements.txt:
------
executor failed running [/bin/sh -c (grep -v '^\s*#' | xargs -L 1 $PIP install --no-cache-dir) < requirements.txt]: exit code: 123

It's presumably the same for all frameworks as this is during the installation of amlb dependencies (I confirmed it also occurs with GAMA). The solution would be to install HDF5 headers (and/or export their location), but I am confused as to why this broke since creating the images last fall (the release notes suggest the last 18.04 release was September last year, though the docker image was updated as recently as two weeks ago).