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的主要内容,如果未能解决你的问题,请参考以下文章
用于 Python 的 HDF5:高级与低级接口。 h5py