如何在M1芯片的MacOS上安装h5py(Keras所需)?

35
我有一台M1 MacBook。我使用pyenv安装了Python 3.9.1,并拥有pip3版本21.0.1。 我已经安装了Homebrew和hdf5 1.12.0_1,通过brew install hdf5命令进行安装。 当我输入以下命令时:
pip3 install h5py

我收到了这个错误:

Requirement already satisfied: numpy>=1.19.3 in /Users/.../.pyenv/versions/3.9.1/lib/python3.9/site-packages (from h5py) (1.20.0)
Building wheels for collected packages: h5py
  Building wheel for h5py (PEP 517) ... error

  Loading library to get build settings and version: libhdf5.dylib
  error: Unable to load dependency HDF5, make sure HDF5 is installed properly
  error: dlopen(libhdf5.dylib, 6): image not found
  ----------------------------------------
  ERROR: Failed building wheel for h5py

我看到/opt/homebrew/opt/hdf5/lib目录下有libhdf5.dylib文件,因此我尝试在安装h5py之前运行export LDFLAGS="-L/opt/homebrew/opt/hdf5/lib"export CPPFLAGS="-L/opt/homebrew/opt/hdf5/include",但是它们并没有起作用。

请问如何安装h5py?

实际上我是要安装h5py来满足安装Keras的要求。

谢谢!


我不是Mac用户,所以帮助有限。然而,我看到了一个类似的问题,关于在Mac M1上安装Python包。他没有使用pip来安装包。相反,他使用了macports,像这样:sudo port install package_name。祝你好运。 - kcw78
3个回答

81

这对我有用:

$ brew install hdf5
$ export HDF5_DIR="$(brew --prefix hdf5)"
$ pip install --no-binary=h5py h5py

更多信息请访问:https://docs.h5py.org/en/latest/build.html#custom-installation - Pieter Meiresone
很高兴听到这对别人有效。然而,对我来说却失败了,出现了6个编译错误(h5py版本2.10.0--Keras兼容性问题)。 - ephsmith
1
它可能不再是1.12.0_4了。对我来说,它是1.13.0。请相应更新。 - Scaraux
我还需要导出包含目录:export HDF5_DIR="$(brew --prefix hdf5)" export CPATH=$(brew --prefix)/include:${CPATH} - patzm
无法帮助。这里出现了问题:“error: dlopen(/usr/local/opt/hdf5/lib/libhdf5.dylib, 0x0006): tried: '/usr/local/opt/hdf5/lib/libhdf5.dylib' (mach-o file, but is an incompatible architecture (have (x86_64)," - GoingMyWay
显示剩余3条评论

15

尝试使用conda安装h5py。这对我有效。

conda install h5py

1
简单明了的解决方案。在我的苹果 M1 Mac Mini 上运行良好。谢谢! - RandomWalker
1
使用搭载 M1 芯片的 MacBook 工作。 - MichaelHuelsen
1
很高兴Anaconda为我们M1用户提供支持。他们在让所有东西正常工作方面做得相当不错。可惜的是,我不能在每个项目中都使用Anaconda。 - ephsmith
这个非常好用。我甚至没有使用Anaconda(我用它的环境依然没有变化)。这个安装了h5py和其他库到系统里,同时也满足了我所有由python.org/pip管理的tables和其他软件包的需求。我想避免在这个系统上使用homebrew,这个就是完美的解决方案! - Zim

0

以下是在 macOS M1 上安装 hdf5 的步骤。

步骤 0(可选):如果您已经安装了 brew,请使用 brew 卸载 hdf5

brew uninstal hdf5 --ignore-dependencies  
步骤1:使用brew安装hdf5
arch -arm64 brew install hdf5
第二步:找到hdf5hdf5.h的目录。
sudo find / -iname "*hdf5.h*" # use sudo if possible

在我的笔记本电脑上,输出是:
/usr/local/include/hdf5.h
/usr/local/Cellar/hdf5/1.12.2_2/include/hdf5.h
/usr/local/Cellar/opencv/4.7.0_2/include/opencv4/opencv2/flann/hdf5.h
/usr/local/Cellar/vtk/9.2.6/include/vtk-9.2/vtk_hdf5.h
/System/Volumes/Data/usr/local/include/hdf5.h
/System/Volumes/Data/usr/local/Cellar/hdf5/1.12.2_2/include/hdf5.h
/System/Volumes/Data/usr/local/Cellar/opencv/4.7.0_2/include/opencv4/opencv2/flann/hdf5.h
/System/Volumes/Data/usr/local/Cellar/vtk/9.2.6/include/vtk-9.2/vtk_hdf5.h

步骤三: 设置 CPATHHDF5_DIR

export CPATH=$CPATH:/usr/local/include/:/usr/local/Cellar/hdf5/1.12.2_2/include

并且

export HDF5_DIR=/usr/local/Cellar/hdf5/1.12.2_2

请注意,在您的笔记本电脑上,这些目录可能会有所不同。
第四步:使用pip安装hdf5。
arch -arm64 pip3.9 install hdf5

然后它成功地完成了安装。


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