在Ubuntu服务器上安装h5py
我在Ubuntu服务器上安装了h5py。 但是,它似乎返回一个错误,没有findh5py.h
当我使用pip
或setup.py
文件安装时,它会给出相同的错误信息。 我在这里错过了什么?
我有Numpy版本1.8.1,比1.6或更高的版本更高。
完整的输出如下:
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
您需要安装libhdf5-dev
才能获得所需的头文件。 赶紧跑
sudo apt-get install libhdf5-dev
它应该自动安装它和它的依赖关系。
不要担心NumPy警告,这只是意味着软件包开发人员正在使用旧版本的API,但一切仍然可以工作。
你可以使用python-h5py 。
sudo apt-get install python-h5py
然后在你的Python文件中尝试:
导入h5py
在我的情况下(Ubuntu 15.04)安装libhdf5-dev
是不够的。
我必须运行:
HDF5_DIR=/usr/lib/x86_64-linux-gnu/hdf5/serial/ pip install h5py
使其工作。
通常最好使用pip
而不是手动安装,因为pip也会安装所有的python依赖项。 你仍然需要你的头文件。
所以:
sudo apt-get install libhdf5-dev pip install h5py