Неразрешенные символы после сборки HDF5, netCDF-C и netCDF4-python из исходного кода - PullRequest
1 голос
/ 14 мая 2019

После использования пакета netCDF4-python без каких-либо проблем мне нужно было включить параллельный доступ к файлам. Поскольку я не смог найти подходящих готовых комбинаций библиотек C HDF5 и netCDF, созданных на основе одной и той же библиотеки MPI, я решил собрать каждый из пакетов из исходного кода с помощью OpenMPI. Однако при импорте пакета netCDF4 происходит сбой из-за неразрешенных символов:

----------------------------------------------- ---------------------------- ImportError Traceback (последний вызов последний) в ----> 1 импорт netCDF4

~ / anaconda3 / Библиотека / python3.6 / сайт-пакеты / netCDF4-1.5.1.2-py3.6-линукс-x86_64.egg / netCDF4 / INIT .py в 1 # init для netCDF4. пакет 2 # Документация поступает из модуля расширения _netCDF4. ----> 3 из ._netCDF4 import * 4 # Нужен явный импорт для имен, начинающихся с подчеркивания 5 из ._netCDF4 import doc , pdoc

ImportError: /usr/local/lib/libnetcdf.so.15: неопределенный символ: H5Pset_dxpl_mpio

Я попытался установить пакет netcdf4-python с помощью pip install, и он отлично работает для последовательного доступа к файлам, но все равно не может загрузить файл с параметром параллельного = True, заявив, что для него требуется netcdf-c с параллельным подключением.

Я устанавливаю HDF5 с

export NCPROCS=4
export CC=mpicc
./configure --prefix=/usr/local/ --enable-parallel --enable-hl
make check
sudo make install

и netCDF-C с

export NCPROCS=4
export CC=mpicc
./configure --prefix=/usr/local/ --enable-parallel-tests
make check
sudo make install

и netCDF4-python с помощью nc-config с

export CC=mpicc
python setup.py install

Каждый шаг распознает параллельные функции. Я пропускаю этап компоновки в процессе сборки или почему libnetcdf.so.15 не может найти символы из библиотеки HDF5?

...