telefonicasc / etl-framework

Framework de ETLs (librerias, documentación, best practices, etc.)
GNU Affero General Public License v3.0
2 stars 6 forks source link

Incompatibilidad de pandas con versión reciente de numpy #89

Closed rg2011 closed 3 months ago

rg2011 commented 3 months ago

Recientemente se ha liberado la versión 2.0.0 de numpy. Esta versión no es compatible con la versión de pandas que usa tc_etl_lib, que es 2.0.3 (ver https://pandas.pydata.org/docs/whatsnew/v2.2.2.html).

La versión 2.0.0 de numpy no es compatible tampoco con python 3.8. De hecho, la última versión de numpy compatible con python 3.8 es 1.24.4. Por lo que en entornos con python 3.8, la versión de numpy que se instala por defecto es 1.24.4, y no hay problemas.

Sin embargo, se está migrando en SaaS y on-premise a python 3.11, y hay entornos que ya lo soportan. En esos entornos, si la versión de numpy no se fija, por defecto baja la última disponible, 2.0.0. Al estar numpy fijado a 2.0.3, las versiones son incompatibles y las ETLs fallan con este error:

ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

Para solucionar este problema, es necesario fijar numpy a 1.24.4 o inferior. Cuando todos los entornos activos se migren a python 3.11, se podrán actualizar pandas y numpy.

fgalan commented 3 months ago

PR #89 (+ PR #90 con ajuste en el Changelog)

rg2011 commented 3 months ago

cerrado tras merge de #89 + #90