如何彻底删除HDF5?

如何彻底删除HDF5?

我想运行一个使用模块 netCDF4 的 Python 脚本。因此我遵循了以下说明:http://netcdf4-python.googlecode.com/svn/trunk/docs/netCDF4-module.html

出于某种原因,它无法与我安装的 HDF5 版本兼容。我在主目录中安装了最新版本 (1.8.10)。但 Python 出现了这个错误:

$ import netCDF4
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/user/timo/<ipython-input-2-f731da2de255> in <module>()
----> 1 import netCDF4
/user/timo/netCDF4.pyx in init netCDF4 (netCDF4.c:46771)()
ImportError: netCDF4 module must be linked against HDF5 version 1.8.4-patch1 or higher, got 1.8.10

因此,我从主目录中(手动)删除了 1.8.10 版本的文件夹,并安装了 1.8.4-patch1。(也许“.10”版本不兼容?)

但这并不能解决问题。当我运行 Python 脚本时,错误仍然相同。这就是为什么我认为一定有我没有删除的“.10”版本,所以我搜索了“hdf5”:

4> sudo find / -name 'hdf5'
/user/timo/hdf5
/user/timo/Downloads/hdf5-1.8.4-patch1/windows/proj/hdf5

(在 '/user/timo/hdf5' 中安装的是 '1.8.4-patch1' 版本)

我猜想,在我完全删除“1.8.10”版本后,我的 Python 脚本将会运行。有人能帮我吗?

(我使用的是“Ubuntu 12.04.1 LTS”和“Python2.7”)

答案1

我当然也不是专家,但看看您链接的 netCDF4 页面,您可能必须在安装旧版 HDF5 后重建它。

不过,我想知道如果您使用“必需”下列出的标志构建 netCDF4,为什么最新版本不起作用。

说什么export?您的 HDF5 变量设置正确吗?

答案2

我将通过运行删除 netCDF4 和 HDF5

apt-get remove --purge python-netcdf hdf5

这也将使相关软件包消失。

这可能更安全:

dpkg -r python-netcdf hdf5
apt-get autoremove

然后重新安装 netCDF4 和依赖项,最常用摘自 Ubuntu 14 LTS 的一篇文章

apt-get install git git-doc git-el git-email git-gui gitk gitweb git-arch git-bzr git-cvs git-mediawiki git-svn python python-dev python-pip libatlas-base-dev gcc gfortran g++ cython

这有助于避免以后出现 scipy python 模块错误[来自 www.scipy.org ]

apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

(重新)安装 zlib 库:

ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/zlib-1.2.8.tar.gz
cd /home/user/Downloads
tar xvzf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure 
make 
make install

(重新)安装 curl:

apt-get install curl

(重新)安装HDF5:

ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.9.tar.gz
cd /home/user/Downloads 
tar xvzf hdf5-1.8.9.tar.gz
cd hdf5-1.8.9
./configure --prefix=/usr/local --enable-shared --enable-hl
make -j 2
make install

(重新)安装 netCDF4:

ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.3.2.tar.gz
cd /home/user/Downloads
tar xvzf netcdf-4.3.2.tar.gz
cd netcdf-4.3.2

LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include ./configure --enable-netcdf-4 --enable-dap --enable-shared --prefix=/usr/local
make -j 2
make install
make check

最后是 netCDF4 模块

pip install netcdf4

现在 python“import netCDF4”应该可以工作了

相关内容