No se pueden instalar algunas de las dependencias de python de requirements.txt
No puedo entender por qué al instalar mis dependencias de python desde requirements.txt pip no me quejo, pero cuando lo hago desde el contenedor de la ventana acoplable, recibí el siguiente mensaje de error:
El contenido de requirements.txt:
Flask~=1.1
grpcio
grpcio-tools
protobuf
iexfinance
numpy
pandas
pandas_datareader
pymongo
He creado mi contenedor como a continuación:
docker run -it -p 8080:50051 -v ${pwd}:/app -w "/app" python:3.8-alpine
Intenté instalar mis dependencias usando este comando:
pip install -r requirements.txt
A continuación, algunas capturas de pantalla:


Respuestas
Alpine Linux usa musl C, pero la mayoría de los archivos de rueda de Python se compilan para glib C. Por lo tanto, los paquetes que tienen extensiones escritas en C / C ++ deben compilarse. Si no tiene un compilador instalado, obtendrá un error.
En lugar de instalar un compilador y las dependencias que los paquetes pueden requerir en el momento de la compilación, sugiero usar una imagen de Python Docker que no esté basada en Alpine. Por ejemplo, puede usar python:3.8-slim
o python:3.8
, y los paquetes de Python que incluyen ruedas de Linux no tendrán que compilarse. Todos los paquetes enumerados en OP requirements.txt
se pueden instalar desde ruedas precompiladas si se usan python:3.8-slim
.
Entonces puedes usar estos comandos
docker run -it -p 8080:50051 -v ${pwd}:/app -w "/app" python:3.8-slim
pip install -r requirements.txt
Si le preocupa el tamaño de la imagen resultante, también puede usar la --no-cache-dir
marca pip install
para deshabilitar el almacenamiento en caché.
La solución fue actualizar alpine-SDK, que es un "metapaquete" que incluye los paquetes esenciales que se utilizan para crear nuevos paquetes ".
apk add --update alpine-sdk
Encontré la solución aquí:
Github: problemas de docker alpine