0 votos
660 visitas
por (160 puntos) en DesdeCasa
Hola,

Tengo que hacer la lectura de gribs desde python sobre Windows. En principio estaba usando cfgrib y xarray que he visto que es bastante eficiente pero me da el siguiente error y no se si me podeis recomendar otro camino para windows y que sea eficente o si esto se puede solucionar...

    raise RuntimeError(f"ecCodes library not found using {LIBNAMES}")

RuntimeError: ecCodes library not found using ['eccodes', 'libeccodes.so', 'libeccodes']

Gracias
por (400 puntos)
Hola, tiene toda la pinta de que eccodes no se ha instalado correctamente. eccodes es lo que usa cfgrib entre bambalinas.

¿Cómo has instalado cfgrib? Prueba lo siguiente (usando conda)

conda create -n grib_env
conda activate grib_env
conda install -c conda-forge python=3.8 eccodes cfgrib -y

Si tienes dudas añade otro comentario y seguimos indagando.

1 Respuesta

0 votos
por (160 puntos)
Muchas gracias por la respuesta.

El problema es que en mi empresa está capado conda y no podemos usarlo.

Estoy probando con wgrib y tengo que mirar también degrib, a ver si lo paso a texto plano y de ahí hacer la lectura..
por (400 puntos)
Miniconda se puede instalar en local con tu usuario sin necesidad de tener permisos avanzados [1] de administración en windows.
Si te fijas en la sección 'installation' en [2] te indica claramente:

"alternatively, if you install the binary dependencies yourself, you can install the Python package from PyPI with: pip [...]"

Es decir, con 'pip' tú eres el encargado de instalar 'eccodes' (las binary dependencies) y necesitarás tener instalado visual studio (express o lo que sea, compiladores para compilar eccodes). No te recomiendo esa vía, sobre todo, si en la empresa lo tienes todo capado. Microsoft visual studio necesitará permisos de administrador...

Te recomiendo que reconsideres la vía conda+miniconda :-) Conda vino para resolver una serie de problemas. Tú tienes dos de esos problemas que venía a resolver. El tema de evitar temas de compilación y el tema de poner las cosas fáciles en entornos Windows.

[1] https://docs.conda.io/en/latest/miniconda.html#windows-installers
[2] https://pypi.org/project/cfgrib/
por (160 puntos)
El problema es que está capado los repositorios de conda, miniconda, bajar cualquier ejecutable aunque sea portable y luego instanciarlo... y alguno que ha conseguido saltarse esas barreras y luego le han descubierto le han echado, por eso no puedo considerar esa opción...,
por (400 puntos)
editado por
Pues que desde IT te den soluciones para poder hacer tu trabajo. wgrib es otro binario descargado de una página random de internet. Podrían usar exactamente el mismo argumento para bloquearte el uso de wgrib.

Una opción que he usado en el pasado con windows es usar gdal para leer los gribs. Si consigues que te instalen gdal puedes intentar por ahí.

Otra opción, si tienes WSL, es usar pygrib que viene con wheels que incluyen eccodes. Pero vuelvo a lo mismo, las wheels son binarios empaquetados. Es raro que 'pip install' esté OK y 'conda install' no esté permitido...
por (160 puntos)
Con conda nos han dicho que no, no se muy bien las causas pero el jefe nos ha dicho que es una guerra pérdida...
Estaba probando wgrib y su viabilidad y si veo que nos sirve realizar la petición para ver si nos dejan... Miraré también gdal para tener más opciones..
Lo del pip y el conda install a mi tb me parece raro, capa todo o ninguno...  Yo tampoco lo entiendo.
Gracias
Bienvenido a Pybonacci - Q&A: pregunta, responde, comparte, colabora.
...