虽然已安装,但无法导入 h5py

问题描述 投票:0回答:1

这似乎是一个反复出现的问题,我已经尝试了网上找到的大部分修复方法,但没有成功。所以我正在使用 miniconda3,并关注 anaconda.org,我做了:

conda install -c anaconda h5py 

当我在终端中输入时,

h5py 确实出现在列表中

conda list

我使用的是 Mac,Python 版本为 3.9.5。

在 PyCharm 上运行

import h5py
,我得到“没有名为 'h5py' 的模块”,在 Jupiter Notebook 上,我得到以下错误消息,可能表明与其他库存在一些冲突(我已经按照不同的方法安装/卸载了 h5py 多次)在线):

Input In [3], in <module>
----> 1 import h5py

File ~/miniconda3/lib/python3.9/site-packages/h5py/__init__.py:33, in <module>
     30     else:
     31         raise
---> 33 from . import version
     35 if version.hdf5_version_tuple != version.hdf5_built_version_tuple:
     36     _warn(("h5py is running against HDF5 {0} when it was built against {1}, "
     37            "this may cause problems").format(
     38             '{0}.{1}.{2}'.format(*version.hdf5_version_tuple),
     39             '{0}.{1}.{2}'.format(*version.hdf5_built_version_tuple)
     40     ))

File ~/miniconda3/lib/python3.9/site-packages/h5py/version.py:15, in <module>
     10 """
     11     Versioning module for h5py.
     12 """
     14 from collections import namedtuple
---> 15 from . import h5 as _h5
     16 import sys
     17 import numpy

File h5py/h5.pyx:1, in init h5py.h5()

ImportError: dlopen(/Users/xxx/miniconda3/lib/python3.9/site-packages/h5py/defs.cpython-39-darwin.so, 2): Symbol not found: _H5Pget_fapl_ros3
  Referenced from: /Users/xxx/miniconda3/lib/python3.9/site-packages/h5py/defs.cpython-39-darwin.so
  Expected in: /Users/xxx/miniconda3/lib/libhdf5.103.dylib
 in /Users/xxx/miniconda3/lib/python3.9/site-packages/h5py/defs.cpython-39-darwin.so````
python h5py
1个回答
0
投票

事实证明,SO 上已经给出了解决方案,但我一直忽略它们,因为它们没有解释任何事情。

让我为解决方案添加详细信息,然后我将列出它们。

我在 Windows 上的 conda 虚拟环境中。我访问 HDF5 anaconda 软件包网站,从那里复制安装命令 (

conda install anaconda::hdf5
) 并将其粘贴到我的 PowerShell 中。安装完成后,我使用命令
conda list
检查了软件包列表。事实上,我可以看到一个名为
hdf5
的包。然后我在 python 中执行了
import h5py
并收到了错误。

我使用命令

conda uninstall hdf5
删除了软件包,并使用命令
pip install h5py
安装了它。我检查了软件包列表(
conda list
),我可以看到一个名为
h5py
的软件包。然后我在 python 中做了
import h5py
并且成功了!

因此,结论如下。如果您使用 conda 安装 HDF5,它会将其安装为

hdf5
,这就是您的
import h5py
失败的原因!这就是为什么您需要删除该软件包并使用
pip install h5py
重新安装它。它将安装为
h5py
并且您的
import h5py
将会正常工作!

现在这里是提供此解决方案的帖子列表,没有任何解释:

© www.soinside.com 2019 - 2024. All rights reserved.