首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python、NetCDF4和HDF5

Python、NetCDF4和HDF5
EN

Stack Overflow用户
提问于 2016-03-28 15:26:47
回答 1查看 4.9K关注 0票数 8

我不知道为什么这些软件包总是那么难安装。我已经使用了很长一段时间了,无论是在Linux上还是OSX上,无论是C、C++还是现在的python,让它们安装或运行都是一次纯粹的恐怖之旅。对于许多人来说,netcdf4和hdf5之间的简单依赖是一个巨大痛苦的来源,我真的希望这些包的开发人员能够对此做些什么。

因此,我面临的最新具体问题是:我正在尝试为python安装netCDF4。我得到以下错误:

代码语言:javascript
复制
Package hdf5 was not found in the pkg-config search path
Perhaps you should add the directory containing `hdf5.pc'

我尝试使用apt安装hdf5包,包括:

  • libhdf5 5系列-dev
  • libhdf5 5系列
  • libhdf5 5-7
  • python-h5py
  • libhdf5-dev
  • hdf5 5-工具
  • hdf5 5-助理员
  • libhdf5-7-dbg

使用pip,我试着:

代码语言:javascript
复制
pip install h5py

它不幸地失败了,无法解决对Cython的依赖,然后我手动安装了Cython。之后,它安装了(显然),但我在任何地方都找不到hdf5.pc文件。

我要把头发拔出来。有人知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-29 18:32:31

当您混合分发包和自建包时,您会增加问题的可能性(正如您正在发现的)。

另外,您想要h5py还是想要netcdf-python?我不认为netcdf-python依赖于h5py。相反,netcdf-python绑定到depends库,而后者又依赖于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文件的位置。不幸的是,hdf5没有提供一个.pc (Package)文件,所以您只能手工完成这个部分。哦,而且netcdf也没有提供pkg-config :它提供了netcdf-python将使用的脚本netcdf。

让我举一个具体的例子:

  • 安装在/home/robl/soft/mpich-master中的MPICH-主机
  • 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,它将提供所需的信息。

如果您正在构建并行编程,请将CC设置为MPI编译器。如果没有,可以跳过导出CC=.‘’。步骤:

代码语言:javascript
复制
cd netcdf-python
export CC=${HOME}/work/soft/mpich/bin/mpicc
export PATH=${HOME}/work/soft/netcdf-master/bin:${PATH}
python setup.py build
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36265426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档