После использования пакета 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?