Импорт пигриб анаконда выбрасывает проблемы с зависимостями

У меня следующая проблема: я установил anaconda 3 и установил пакет под названием "pygrib" в свою среду anaconda. Теперь при импорте Pygrib в файл в моей среде, это покажет мне эту ошибку:

import pygrib ImportError: libhdf5.so.10: cannot open shared object file: No such file or directory

Поскольку я новичок, я действительно не знаю, что делать с этой информацией. Я установил пакет h5py и некоторые другие связанные с ним, но это не решило проблему. Что делать?

1 ответ

Это ошибка связи с библиотекой HDF5. Ты строишь pygrib из источника или с помощью conda-forge канал для установки через conda? Когда я использую conda-forge построить из pygrib Я получаю ту же проблему. GRIB API от ECMWF (на conda-forge он указан как ecmwf_grib) - это то, от чего зависит pygrib, а зависимость HDF5 исходит от netCDF4, используемого в библиотеке API GRIB. В частности, использование последней версии HDF5 (на данный момент версии 1.10.0) является причиной проблем. Использование HDF5 1.8.* Вместо этого позволяет pygrib импортировать правильно.

Чтобы заставить conda получить конкретную версию, просто выполните:

conda install pygrib hdf5=1.8

Это получит conda снова решить спецификации пакета с помощью старой библиотеки HDF5 и, вероятно, решить проблему. Это предполагает, что вы находитесь в conda среда, которую вы установили pygrib в. Вы также можете создать новую среду с conda create -n <env name> pygrib hdf5=1.8 если бы ты хотел.

В общем, когда вы видите эти ошибки, когда библиотека не найдена, часто возникает вопрос о том, чтобы установить правильную версию библиотеки. С condaтакого рода вещи случаются при обновлении пакетов, и устанавливается новая версия библиотеки, с которой пакет, с которым вы работаете, не был правильно связан. Пока вы можете отследить пакет / библиотеку, которая вызывает проблемы, вы можете использовать описанную выше процедуру, чтобы начать требовать установки определенных версий вещей и conda Затем следует обновить или понизить версию, чтобы все снова работало вместе. Надеюсь, это имеет смысл и помогает.

Эта часть может вас заинтересовать, а может и не заинтересовать, но я не могу сказать наверняка, откуда возникла эта проблема. Я думаю, что это что-то с ecmwf_grib и как это построено. Вот где ldd показывает старую зависимость HDF5, отображаемую для моей установки. Если я смогу выяснить точную проблему, я обновлю этот ответ.

Другие вопросы по тегам