I was working through a textbook, and one of the examples required mahotas for python. I immediately tried to install it with pip, and immediately got this error:
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -DPY_ARRAY_UNIQUE_SYMBOL=Mahotas_PyArray_API_Symbol -I/usr/local/lib/python3.4/dist-packages/numpy/core/include -I/usr/include/python3.4m -c mahotas/_convex.cpp -o build/temp.linux-x86_64-3.4/mahotas/_convex.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from mahotas/numpypp/array.hpp:17:0,
from mahotas/_convex.cpp:7:
mahotas/numpypp/numpy.hpp:10:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-kzn3_c4k/mahotas/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-y19bwul7-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-kzn3_c4k/mahotas/
Now, after looking up other #include <Python.h>
and error: command 'x86_64-linux-gnu-gcc
errors, I keep getting told to install python-dev
.
Unfortunately, that fails immediately as well, as python-dev
is already the newest version, and for python3-dev
I get this:
The following packages have unmet dependencies:
python3-dev : Depends: libpython3-dev (= 3.4.0-0ubuntu2) but it is not going to be installed
Depends: python3.4-dev (>= 3.4.0-0~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
And when I try to install those?
A:
The following packages have unmet dependencies:
libpython3-dev : Depends: libpython3.4-dev (>= 3.4.0-0~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
and then:
The following packages have unmet dependencies:
libpython3.4-dev : Depends: libpython3.4-stdlib (= 3.4.0-2ubuntu1) but 3.4.3-1ubuntu1~14.04.3 is to be installed
Depends: libpython3.4 (= 3.4.0-2ubuntu1) but 3.4.3-1ubuntu1~14.04.3 is to be installed
E: Unable to correct problems, you have held broken packages.
B:
The following packages have unmet dependencies:
python3.4-dev : Depends: python3.4 (= 3.4.0-2ubuntu1) but 3.4.3-1ubuntu1~14.04.3 is to be installed
Depends: libpython3.4-dev (= 3.4.0-2ubuntu1) but it is not going to be installed
Depends: libpython3.4 (= 3.4.0-2ubuntu1) but 3.4.3-1ubuntu1~14.04.3 is to be installed
E: Unable to correct problems, you have held broken packages.
This is a rabbit hole. How can I escape?
(Author of mahotas here).
Your Ubuntu installation is now in some weird state wrt the Python-dev packages. My recommendation to get out of the rabbit hole is to use Anaconda: https://www.continuum.io/why-anaconda
Then you can get mahotas from the conda-forge project: https://anaconda.org/conda-forge/mahotas
Conda-forge is a community project which will keep it up to date. Anaconda has other advantages too.