Вопрос или проблема
Я хочу запустить сценарий на 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 должен быть связан с HDF5 версии 1.8.4-patch1 или выше, получена 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’)
Я бы удалил как 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
должна работать.
Ответ или решение
Чтобы полностью удалить HDF5 и установить совместимую версию, вам необходимо выполнить следующие шаги на вашем компьютере с операционной системой Ubuntu 12.04.1 LTS.
Удаление HDF5 и netCDF4
-
Откройте терминал.
-
Выполните команду для удаления пакетов
hdf5
иpython-netcdf
:sudo apt-get remove --purge python-netcdf hdf5
Эта команда удалит указанные пакеты и освободит место, удалив ненужные зависимые пакеты.
-
Чтобы обеспечить более безопасное удаление, вы можете сначала удалить пакеты с помощью
dpkg
, а затем произвести автоматическое удаление оставшихся зависимостей:sudo dpkg -r python-netcdf hdf5 sudo apt-get autoremove
Установка зависимостей
Перед установкой новой версии HDF5 и netCDF4 убедитесь, что у вас установлены все необходимые зависимости. Выполните следующую команду:
sudo apt-get install git python python-dev python-pip libatlas-base-dev gcc gfortran g++ cython python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
Установка zlib
-
Скачайте zlib:
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/zlib-1.2.8.tar.gz
-
Распакуйте архив и установите:
tar xvzf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make sudo make install
Установка HDF5
-
Скачайте HDF5:
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.4-patch1.tar.gz
-
Распакуйте и установите:
tar xvzf hdf5-1.8.4-patch1.tar.gz cd hdf5-1.8.4-patch1 ./configure --prefix=/usr/local --enable-shared --enable-hl make -j 2 sudo make install
Установка netCDF4
-
Скачайте netCDF4:
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.3.2.tar.gz
-
Распакуйте и установите:
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 sudo make install sudo make check
Установка Python модуля netCDF4
Убедитесь, что у вас установлен pip
, затем выполните:
pip install netcdf4
Проверка установки
Теперь вы можете проверить, работает ли импорт модуля netCDF4
:
import netCDF4
Если никаких ошибок не возникло, установка прошла успешно.
Следуя этим шагам, вы сможете полностью удалить HDF5 и установить совместимую версию, а также настроить netCDF4
для работы в вашем окружении.