Python、NetCDF4和HDF5

9
我不知道为什么这些程序包总是很难安装。我已经使用NetCDF/HDF5很长一段时间了,无论是在Linux还是OSX上,无论是C、C++或现在的Python,它们始终是安装或正常运行的纯恐怖之旅。netcdf4和hdf5之间的简单依赖关系对许多人来说都是一个巨大的痛苦源泉,我真的希望这些软件包的开发人员能够采取一些措施解决这个问题。
因此,我目前面临的最新具体问题是:我正在尝试安装Python的netCDF4。我遇到了以下错误:
Package hdf5 was not found in the pkg-config search path
Perhaps you should add the directory containing `hdf5.pc'

我尝试使用apt-get安装hdf5软件包,包括:

  • libhdf5-serial-dev
  • libhdf5-serial
  • libhdf5-7
  • python-h5py
  • libhdf5-dev
  • hdf5-tools
  • hdf5-helpers
  • libhdf5-7-dbg

使用pip时,我尝试了:

pip install h5py

安装过程中遇到一个问题,无法解析Cython的依赖项,我最终手动安装了它。之后安装似乎成功了,但我找不到hdf5.pc文件的任何位置。

我正在为此烦恼。有人知道如何解决这个问题吗?


3
你考虑过使用Anaconda吗?这样你所有的安装问题都将迎刃而解 :) - jhamman
1个回答

3
当你混合使用发行版软件包和自建软件包时,你增加了出现问题的机会(正如你正在发现的那样)。
另外,你想要h5py还是netcdf-python?我认为netcdf-python并不依赖于h5py。相反,netcdf-python绑定到C netcdf库,而C netcdf库则依赖于C HDF5库。
h5py同样绑定到C HDF5。
涉及到很多软件,确实如此。一步一步地进行操作,最终会变得更加清晰(这是一个做了15年的人说的...它会变得更容易!)
1.如果你要进行任何并行编程,你需要MPI实现。 2.HDF5现在为NetCDF4提供基础。如果你想进行并行编程,请使用MPI实现构建HDF5。 3.安装NetCDF4的C库。 4.现在python绑定可以从NetCDF4、HDF5和MPI中获取所需的内容。

是的,配置和构建软件确实需要很多工作。 pkg-config 可以在这方面提供很大帮助! 当你看到 Package hdf5 was not found in the pkg-config search path 时,这意味着你应该调整你的 PKG_CONFIG_DIR,指向 package-config 文件的位置。不幸的是,hdf5 没有提供 .pc(package-config)文件,因此你需要手动处理这部分。哦,还有 netcdf 也没有提供 pkg-config:它提供了一个脚本 nc-config,netcdf-python 将使用它。

让我提供一个具体的例子:

  • MPICH-master已安装在/home/robl/soft/mpich-master
  • HDF5已安装在/home/robl/soft/hdf5-1.8.16
    • 例如配置为../../hdf5-1.8.16/configure --prefix=/home/robl/work/soft/hdf5-1.8.16 CC=/home/robl/work/soft/mpich/bin/mpicc --enable-parallel
  • NetCDF4已安装在/home/robl/soft/netcdf-master
    • 例如配置为./configure CC=${HOME}/work/soft/mpich/bin/mpicc --prefix=${HOME}/work/soft/netcdf-master CPPFLAGS=-I${HOME}/work/soft/hdf5-1.8.16/include LDFLAGS=-L${HOME}/work/soft/hdf5-1.8.16/lib

现在您拥有了netcdf-python的所有先决条件

顺便提一下,http://unidata.github.io/netcdf4-python/列出了先决条件和必要的配置选项。
不要被hdf5.pc的抱怨所困扰。如果您的路径中有nc-config,则它将提供所需的信息。
如果您正在构建并行编程,请将CC设置为MPI编译器。如果不是,则可以跳过“export CC = ...”步骤:
cd netcdf-python
export CC=${HOME}/work/soft/mpich/bin/mpicc
export PATH=${HOME}/work/soft/netcdf-master/bin:${PATH}
python setup.py build

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