问题
Hi I am trying to install scikit image in a virtual environment on ubuntu 18.04.
It fails when it tries to install imagecodecs, I tried to install imagecodecs separately but it gives the same error which is something due to blosc. I installed blosc separately but somehow this still fails.
/usr/include/python3.6m/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by " \
^~~~~~~
imagecodecs/_blosc.c:602:10: fatal error: blosc.h: No such file or directory
#include "blosc.h"
^~~~~~~~~
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/home/xxxx/im_an/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ijwkwo7f/imagecodecs/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-4xtori6c-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/xxxx/im_an/include/site/python3.6/imagecodecs" failed with error code 1 in /tmp/pip-build-ijwkwo7f/imagecodecs/
I hope that somebody could help me with this. Thank you
回答1:
Unfortunately imagecodecs wheels (pre-compiled binaries) are compatible only with pip 19.0 and newer, because they use the newer manylinux2010 standard. Upgrade pip (pip install -U pip
) and try again, and things should work!
See these issues for reference:
https://github.com/scikit-image/scikit-image/issues/4673
https://github.com/scikit-image/scikit-image/issues/4674
回答2:
After struggling for a while, I solved this with:
pip3 install -U pip
回答3:
The development libraries (those including *h) are missing from your installation. You can install them like:
sudo apt-get install libblosc-dev
You will have issues with other libraries as well:
sudo apt-get install libbrotli-dev
etc.
回答4:
This happens because imagecodecs package relies on too many dependencies that your computer doesn't have, like libblosc and libbrotli as @user6131524 has said.
To install the dependencies:
sudo apt-get install build-essential python3-dev cython3 python3-setuptools python3-pip python3-wheel python3-numpy python3-pytest python3-blosc python3-brotli python3-snappy python3-lz4 libz-dev libblosc-dev liblzma-dev liblz4-dev libzstd-dev libpng-dev libwebp-dev libbz2-dev libopenjp2-7-dev libjpeg-turbo8-dev libjxr-dev liblcms2-dev libcharls-dev libaec-dev libbrotli-dev libsnappy-dev libzopfli-dev libgif-dev libtiff-dev
I believe this will solve your problem in the most general way.
来源:https://stackoverflow.com/questions/61777875/problem-installing-scikit-image-probably-due-to-blosc