instalar con el administrador de paquetes del sistema

instalar con el administrador de paquetes del sistema

Estoy experimentando con Alpine-Linux y no funciona como se esperaba.

Intento usarlo pip install cryptography, pero tarda una eternidad y se detiene en este resultado incomprensible.

Running command /usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-h925mzyj/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__f le__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-gdaazboj --python-tag cp36

¿Qué puedo hacer al respecto?

Respuesta1

Alpine es una distribución que genera dolor de cabeza para la mayoría de los paquetes de Python que incluyen extensiones C/C++ (código escrito en C/C++ que se compila en un objeto compartido y se carga en Python a través de una biblioteca de funciones externa). La razón de esto es que esPEP 513cuya definición de portabilidad entre distribuciones de Linux manylinux1se basa en glibc/glibcxx. Dado que Alpine utiliza musl libc, no manylinux1se puede instalar ninguna rueda compatible en Alpine. Entonces, cuando emite pip install cryptography, la rueda con las extensiones compiladas se filtra e pipintenta compilar el paquete con todas las extensiones C desde el código fuente.

instalar con el administrador de paquetes del sistema

Esta es la forma preferida y @GracefulRestart la mencionó en los comentarios; Úselo si no necesita la versión más avanzada del paquete.Alpine ofrece el cryptographypaquete prediseñado, actualmente es el cryptography<=2.1.4. Instálalo con apk:

$ apk add py-cryptography

instalando con pip

Si necesita la versión más avanzada, puede intentar compilarla desde el código fuente instalándola con pip.

Preparando el entorno de construcción

Necesitará el compilador y las bibliotecas con archivos de encabezado: musl, OpenSSL, libffi y el propio Python:

$ apk add gcc musl-dev libffi-dev openssl-dev python3-dev

Edificio

pip install pkgnameOculta el registro de compilación de forma predeterminada. Para ver el registro de compilación completo, agréguelo -vvvpara aumentar la detalle. (Opcional) Además, puede prohibir explícitamente la instalación manylinux1de ruedas agregando --no-binary=pkgnamepara que se aplique la compilación desde el código fuente.

$ pip install cryptography -vvv --no-binary=cryptography

información relacionada