Installing h5py on an Ubuntu server

h5py, installation, python, python-2.7

Solution

You need to install `libhdf5-dev` to get the required header files. Just run

sudo apt-get install libhdf5-dev

and it should install it and its dependencies automatically.

Don't worry about the NumPy warning, it just means that the package developers are using an old version of the API, but everything will still work.

Problem

I was installing h5py on an Ubuntu server. However it seems to return an error that `h5py.h` is not found. It gives the same error message when I install it using `pip` or the `setup.py` file. What am I missing here? I have Numpy version 1.8.1, which higher than the required version of 1.6 or above. The complete output is as follows: ``` van@Hulk:~/h5py-2.3.1⟫ sudo python setup.py install libhdf5.so: cannot open shared object file: No such file or directory HDF5 autodetection failed; building for 1.8.4+ running install running bdist_egg running egg_info writing h5py.egg-info/PKG-INFO writing top-level names to h5py.egg-info/top_level.txt writing dependency_links to h5py.egg-info/dependency_links.txt reading manifest file 'h5py.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.c' under directory 'win_include' warning: no files found matching '*.h' under directory 'win_include' writing manifest file 'h5py.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/h5py copying h5py/ipy_completer.py -> build/lib.linux-x86_64-2.7/h5py copying h5py/__init__.py -> build/lib.linux-x86_64-2.7/h5py copying h5py/version.py -> build/lib.linux-x86_64-2.7/h5py copying h5py/highlevel.py -> build/lib.linux-x86_64-2.7/h5py creating build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/group.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/files.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/selections.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/__init__.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/filters.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/base.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/dims.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/datatype.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/dataset.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/selections2.py -> build/lib.linux-x86_64-2.7/h5py/_hl copying h5py/_hl/attrs.py -> build/lib.linux-x86_64-2.7/h5py/_hl creating build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_selections.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_group.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_h5.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_attrs.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_objects.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_slicing.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_h5t.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_datatype.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/__init__.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_dimension_scales.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_base.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_dataset.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_file.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_h5p.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_attrs_data.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/common.py -> build/lib.linux-x86_64-2.7/h5py/tests copying h5py/tests/test_h5f.py -> build/lib.linux-x86_64-2.7/h5py/tests running build_ext skipping 'h5py/defs.c' Cython extension (up-to-date) building 'h5py.defs' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/h5py x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DH5_USE_16_API -I/home/govinda/h5py-2.3.1/lzf -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c h5py/defs.c -o build/temp.linux-x86_64-2.7/h5py/defs.o In file included from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1761:0, from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:17, from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:4, from h5py/api_compat.h:26, from h5py/defs.c:342: /usr/lib/python2.7/dist-packages/numpy/core/include/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 " \ ^ In file included from h5py/defs.c:342:0: h5py/api_compat.h:27:18: fatal error: hdf5.h: No such file or directory #include "hdf5.h" ^ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ```

Original source