Error al instalar Landsat-Util en Linux

8

Estoy tratando de instalar Landsat-Util en Ubuntu 16.04. Estoy ejecutando Ubuntu como una máquina virtual dentro de Windows. Estoy usando una instalación limpia (sin paquetes instalados) con la esperanza de evitar conflictos de dependencia.

He estado siguiendo las instrucciones en esta página , pero encuentro errores cada vez que intento ejecutar este comando:

$: pip install landsat-util

Aquí hay un extracto de la salida:

Running setup.py bdist_wheel for pycurl ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-oH9kCk/pycurl/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpgxvEEBpip-wheel- --python-tag cp27:
  Using curl-config (libcurl 7.47.0)
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-2.7
  creating build/lib.linux-x86_64-2.7/curl
  copying python/curl/__init__.py -> build/lib.linux-x86_64-2.7/curl
  running build_ext
  building 'pycurl' extension
  creating build/temp.linux-x86_64-2.7
  creating build/temp.linux-x86_64-2.7/src
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPYCURL_VERSION="7.43.0" -DHAVE_CURL_GNUTLS=1 -DHAVE_CURL_SSL=1 -I/usr/include/python2.7 -c src/docstrings.c -o build/temp.linux-x86_64-2.7/src/docstrings.o
  In file included from src/docstrings.c:4:0:
  src/pycurl.h:173:30: fatal error: gnutls/gnutls.h: No such file or directory
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for pycurl
  Running setup.py clean for pycurl
  Running setup.py bdist_wheel for toolz ... done
  Stored in directory: /home/jim/.cache/pip/wheels/b0/84/bf/7089262387e8ea60bdefb1fdb84d2ee99427f6d09c9c7ba37d
Successfully built landsat-util usgs termcolor rasterio homura polyline matplotlib click requests-futures click-plugins humanize toolz
Failed to build pycurl
Installing collected packages: click, requests, futures, requests-futures, usgs, six, python-dateutil, numpy, termcolor, affine, cligj, pyparsing, snuggs, click-plugins, enum34, rasterio, scipy, toolz, dask, pytz, cycler, matplotlib, pillow, decorator, networkx, scikit-image, humanize, pycurl, homura, boto, polyline, ratelim, geocoder, landsat-util
  Running setup.py install for pycurl ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-oH9kCk/pycurl/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-pvaIdU-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    Using curl-config (libcurl 7.47.0)
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/curl
    copying python/curl/__init__.py -> build/lib.linux-x86_64-2.7/curl
    running build_ext
    building 'pycurl' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/src
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPYCURL_VERSION="7.43.0" -DHAVE_CURL_GNUTLS=1 -DHAVE_CURL_SSL=1 -I/usr/include/python2.7 -c src/docstrings.c -o build/temp.linux-x86_64-2.7/src/docstrings.o
    In file included from src/docstrings.c:4:0:
    src/pycurl.h:173:30: fatal error: gnutls/gnutls.h: No such file or directory
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-oH9kCk/pycurl/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-pvaIdU-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-oH9kCk/pycurl/

Intenté instalar Landsat-util en una variedad de entornos diferentes (Windows 10, Ubuntu 14.04, Ubuntu con Anaconda, Ubuntu con Miniconda), pero siempre me encuentro con problemas similares. Parece que Landsat-Util depende de muchos otros paquetes que son difíciles de instalar.

¿Cómo puedo hacer que esta utilidad funcione?

jim-el-reportero
fuente
sudo apt install python-pycurl
user2856

Respuestas:

8

gnutls.hlo que se requiere falta en el sistema de archivos, incluso si instala, libcurl4-gnutls-devque supuestamente tiene los archivos de encabezado para curl.

para corregir ese error, ejecute:

# apt-get install libgnutls28-dev

para agregar el encabezado y pip que faltan finalmente para instalar pycurl y landsat-util

nickves
fuente