2013-09-12 2 views
2

Когда я пытаюсь установить pyhdf, эта ошибка происходит:Не удается установить pyhdf на Ubuntu 13.04

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

Возможно, вам необходимо установить пакет libhdf4-dev.

И вместо того, чтобы использовать sudo для установки пакетов в вашу систему, потратьте некоторое время на чтение около virtualenv.

+0

Иногда не так просто установить C-библиотеки на основе p, такие как numpy и, вероятно, на Ubuntu. Я установил их на Arch без боли, используя PIP. – mohi666

+0

Спасибо. Произошла новая ошибка: из журнала импорта numpy.distutils. Я не знаю почему. – user2771708

1

Для решения проблемы сначала необходимо установить hdf пакет разработки.

sudo apt-get install libhdf4-dev

+0

Спасибо, я сделал это, но все еще имею ошибки. Произошла новая ошибка: /usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py:252: RuntimeWarning: родительский модуль «numpy.distutils» не найден во время обработки абсолютного импорта из импорта numpy.distutils log Я не знаю почему. – user2771708

+0

В случае, если вы не хотите использовать _virtualenv_ и вы устанавливаете в глобальное пространство имен, вы можете попробовать установить пакет ubuntu 'python-h5py'. – Alexander

+0

@ Александр это для hdf5, а не hdf4. – gerrit

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 

Та же проблема для переменной NOSZIP, если вы нет/хотите szlib, но здесь я изменил setup.py на линии 29:

szip_installed=False 

После этого установка работает нормально.

+0

Отличный ответ. Жаль, что они не исправили setup.py. –

Смежные вопросы