无法在ubuntu 13.04上安装pyhdf

时间:2013-09-12 08:02:57

标签: python ubuntu

当我尝试安装pyhdf时,会发生以下错误:

sudo easy_install -f pyhdf-0.8.3.tar.gz pyhdf
Searching for pyhdf
Best match: pyhdf 0.8.3
Processing pyhdf-0.8.3.tar.gz
Writing /tmp/easy_install-Q0FIMR/pyhdf-0.8.3/setup.cfg
Running pyhdf-0.8.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Q0FIMR/pyhdf-0.8.3/egg-dist-tmp-wXq_6K
pyhdf/hdfext_wrap.c: In function ‘SWIG_Python_AddErrorMsg’:
pyhdf/hdfext_wrap.c:859:5: warning: format not a string literal and no format arguments [-Wformat-security]
pyhdf/hdfext_wrap.c: At top level:
pyhdf/hdfext_wrap.c:3048:17: fatal error: hdf.h: No such file or directory
compilation terminated.
pyhdf/hdfext_wrap.c: In function ‘SWIG_Python_AddErrorMsg’:
pyhdf/hdfext_wrap.c:859:5: warning: format not a string literal and no format arguments [-Wformat-security]
pyhdf/hdfext_wrap.c: At top level:
pyhdf/hdfext_wrap.c:3048:17: fatal error: hdf.h: No such file or directory
compilation terminated.
error: Setup script exited with error: Command "x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c pyhdf/hdfext_wrap.c -o build/temp.linux-x86_64-2.7/pyhdf/hdfext_wrap.o" failed with exit status 1
/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py:252: RuntimeWarning: Parent module 'numpy.distutils' not found while handling absolute import
  from numpy.distutils import log

知道出了什么问题吗?谢谢。

3 个答案:

答案 0 :(得分:3)

您可能需要安装libhdf4-dev包。

而不是使用sudo将软件包安装到您的系统中,而是花一些时间阅读virtualenv

答案 1 :(得分:2)

即使使用libhdf4-dev软件包,您也可能遇到缺少hdf.h文件的问题(我做过)。似乎代码setup.py(在安装档案中)没有正确处理指定HDF4库所在的环境变量。

我按照http://pysclint.sourceforge.net/pyhdf/install.html的分步说明解决了这个问题,但您必须在命令行中添加hdf库而不是导出它:

INCLUDE_DIRS=/usr/include/hdf/  [note it may be different in your system ]

sudo python setup.py install -i $INCLUDE_DIRS

如果您没有/想要szlib,NOSZIP变量也有同样的问题,但是在这里我修改了第29行的setup.py:

szip_installed=False

然后安装正常。

答案 2 :(得分:1)

要解决此问题,首先需要安装 hdf 开发包。

sudo apt-get install libhdf4-dev