hdf5 / h5py ImportError: libhdf5.so.7

24

我正在处理一个涉及网络消息队列(如msgpack,zmq等)的项目,运行在RHEL 6.3(x86_64)系统上。为了让pylab/matplotlib正常工作(但也没有成功),我安装了最新版本的glib、gevent、pygobject和pygtk等软件包。

在放弃尝试后,我回到我的代码,却意外地破坏了我的hdf5/h5py安装 - 在导入时无法找到libhdf5.so.7。我立即在RHEL 6.3(x86_64)的/usr/local/hdf5目录下重新安装了hdf5-1.8.9:

./configure --prefix=/usr/local/hdf5
make
make check
sudo make install
make check install

这似乎完美地运行了。接着我去重新安装h5py(在Python 2.7.3中):

python2.7 setup.py build --hdf5=/usr/local/hdf5/
python2.7 setup.py test   # optional
# sudo python2.7 setup.py install

测试中无法导入_errors文件,示例如下:

======================================================================
ERROR: _hl.tests.test_attrs_data (unittest.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: _hl.tests.test_attrs_data
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/unittest/loader.py", line 252, in _find_tests
    module = self._get_module_from_name(name)
  File "/usr/local/lib/python2.7/unittest/loader.py", line 230, in _get_module_from_name
    __import__(name)
  File "/home/cronburg/Downloads/h5py-2.0.1/build/lib.linux-x86_64-2.7/h5py/_hl/tests/test_attrs_data.py", line 5, in <module>
    import h5py
  File "/home/cronburg/Downloads/h5py-2.0.1/build/lib.linux-x86_64-2.7/h5py/__init__.py", line 1, in <module>
    from h5py import _errors
ImportError: libhdf5.so.7: cannot open shared object file: No such file or directory


----------------------------------------------------------------------
Ran 12 tests in 0.001s

FAILED (errors=12)

在安装上述软件/ tarball之前,h5py正常工作,我不记得自己接触过任何看起来像hdf5的东西。有什么想法吗?

编辑: 尝试定位文件只会在我解压缩它的位置显示它:

cronburg@rhel:~/Downloads/h5py-2.0.1$ locate libhdf5.so.7
/home/cronburg/tmp/hdf5-1.8.9/hdf5/lib/libhdf5.so.7
/home/cronburg/tmp/hdf5-1.8.9/hdf5/lib/libhdf5.so.7.0.3
/home/cronburg/tmp/hdf5-1.8.9/src/.libs/libhdf5.so.7
/home/cronburg/tmp/hdf5-1.8.9/src/.libs/libhdf5.so.7.0.3

7
我将LD_LIBRARY_PATH添加了**/usr/local/hdf5/lib/**,现在h5py可以正常工作了(在这里找到.so文件)。 - cronburg
2个回答

1

请查看: http://rpm.pbone.net/index.php3/stat/3/srodzaj/1/search/libhdf5.so.7()(64bit)

或者可以尝试这个仓库:https://ius.io/Packages/

我更喜欢使用最新的Python版本,以包格式提供。

https://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/repoview/python27.html

sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm
sudo yum install -y python27
sudo yum install -y python27-devel

做一个 pip install,并感到快乐:

$ sudo pip install h5py
Installing collected packages: h5py
Successfully installed h5py-2.6.0

KarlC,请看一下。 - sharkguto
对我的情况没有帮助,因为我需要手动安装hdf5(这是一个4年前的问题,我无法完全记得原因 - 可能当时需要一个不在pip中的版本)。这个问题更多的是“我正在构建这个软件包,所以为什么会出现这个错误”,而不是“请教我如何使用pip和RHEL软件包管理器”。 - cronburg

-1

当我在干净的Raspbian上使用h5py时,也发生了这种情况。您需要先安装系统库。

apt install libhdf5-dev

然后

pip install h5py

1
对于目前支持的h5py版本,Ubuntu是可以的。然而,我的问题是关于RHEL上的h5py版本,该版本不受repos支持。 - cronburg
你说得很对,这就是为什么我在回答的那一天参考了Raspbian。谢谢。 - luismesas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接