hdf5 / h5py ImportError: libhdf5.so.7

Posted

技术标签:

【中文标题】hdf5 / h5py ImportError: libhdf5.so.7【英文标题】: 【发布时间】:2012-07-19 21:08:08 【问题描述】:

我正在开展一个项目,该项目涉及 RHEL 6.3 (x86_64) 系统上的网络消息传递队列(msgpack、zmq、...)。我正在安装最新的 glib、gevent、pygobject、pygtk 等软件包,以便让 pylab / matplotlib 工作(也没有成功)。

放弃后,我回到了我的代码,不知何故我设法破坏了我的 hdf5 / h5py 安装 - 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)

在我安装上述软件包/压缩包之前,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

【问题讨论】:

已将 /usr/local/hdf5/lib/ 添加到我的 LD_LIBRARY_PATH 中,现在 h5py 可以工作了(在那里找到了 .so)。跨度> 【参考方案1】:

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

或者应该试试这个 repo: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 看看 对我的情况没有帮助,因为出于某种原因我需要手动安装 hdf5(这是一个 4 年前的问题,我不太记得为什么 - 可能需要一个不在 pip 中的版本时间)。问题更多的是“我正在构建这个包,为什么会出现这个错误”而不是“请教我如何使用 pip 和 RHEL 包管理器”。【参考方案2】:

在干净的 raspbian 上使用 h5py 时,这也发生在我身上。您需要先安装系统库。

apt install libhdf5-dev

然后

pip install h5py

【讨论】:

对于具有当前支持的 h5py 版本的 ubuntu,是的。然而,我的问题是关于 rhel 的版本不被 repos 支持的 h5py。 你说得很好,这就是为什么我在回答当天提到了 raspbian,因为它发生在我身上。谢谢

以上是关于hdf5 / h5py ImportError: libhdf5.so.7的主要内容,如果未能解决你的问题,请参考以下文章

用 h5py 创建的 HDF5 文件不能被 h5py 打开

如何使用“h5py”调整 HDF5 数组的大小

用于 Python 的 HDF5:高级与低级接口。 h5py

使用 h5py 对 hdf5 进行增量写入

具有版本控制的 HDF5 文件 (h5py) - 每次保存时都会更改哈希

使用 H5Py 在 HDF5 中存储日期时间