Saltar al contenido

Instalar pandas en un Dockerfile

Al fin luego de mucho trabajar hemos encontrado la solución de este contratiempo que muchos lectores de nuestra web han presentado. Si tienes algo más que aportar no dejes de aportar tu comentario.

Solución:

Me doy cuenta de que esta pregunta ha sido respondida, pero recientemente tuve un problema similar con las dependencias numpy y pandas con un proyecto dockerizado. Dicho esto, espero que esto sea de beneficio para alguien en el futuro.

Mi solución:

Como señaló Aviv Sela, Alpine no contiene herramientas de compilación de forma predeterminada y deberá agregarse a través del Dockerfile. Por lo tanto, vea a continuación mi Dockerfile con los paquetes de compilación necesarios para que numpy y pandas se instalen correctamente en Alpine para el contenedor.

FROM python:3.6-alpine3.7

RUN apk add --no-cache --update 
    python3 python3-dev gcc 
    gfortran musl-dev g++ 
    libffi-dev openssl-dev 
    libxml2 libxml2-dev 
    libxslt libxslt-dev 
    libjpeg-turbo-dev zlib-dev

RUN pip install --upgrade pip

ADD requirements.txt .
RUN pip install -r requirements.txt

Los requisitos.txt

numpy==1.17.1
pandas==0.25.1

EDITAR:

Agregue lo siguiente (fragmento de código a continuación) al Dockerfile, antes del comando upgrade pip RUN. Es fundamental para la instalación exitosa de pandas, como lo señaló Bishwas Mishra en un comentario.

RUN pip install --upgrade cython

Alpine no contiene herramientas de compilación de forma predeterminada. Instale la herramienta de compilación y cree un enlace simbólico para la configuración regional:

$ apk add --update curl gcc g++
$ ln -s /usr/include/locale.h /usr/include/xlocale.h
$ pip install numpy

Basado en https://wired-world.com/?p=100

El uso de una nueva versión de python que aún no es compatible con pandas generará problemas.

Descubrí que no funciona con una versión de desarrollo de Python:

FROM python:3.9.0a6-buster


RUN apt-get update && 
    apt-get -y install python3-pandas

COPY requirements.txt ./ 
RUN pip3 install --no-cache-dir -r 

requisitos.txt:

numpy==1.18
pandas

Descubrí que SÍ funciona con una versión lanzada oficialmente de Python:

FROM python:3.8-buster

Sección de Reseñas y Valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *