1

Я хочу запустить скрипт Python, который использует модуль netCDF4. Поэтому я следовал инструкциям здесь: 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')

Я предполагаю, что мой скрипт на Python запустится после того, как я полностью удалю версию 1.8.10. Может кто-нибудь мне помочь?

(Я использую 'Ubuntu 12.04.1 LTS' и 'Python2.7')

2 ответа2

0

Я бы удалил как 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

теперь питон "импорт netCDF4" должен работать

0

Я определенно также не эксперт, но, глядя на страницу netCDF4, на которую вы ссылались, вам, вероятно, придется пересобирать ее после установки более старой версии HDF5.

Однако мне интересно, если вы собираете netCDF4 с флагами, перечисленными в разделе "Требуется", почему последняя версия не должна работать.

Что говорит export ? Ваши переменные HDF5 установлены правильно?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .