La instalación de PIP no puede encontrar ffi.h a pesar de que reconoce libffi


76

He instalado libffien mi servidor Linux y he configurado correctamente la PKG_CONFIG_PATHvariable de entorno en el directorio correcto, ya pipque reconoce que está instalado; sin embargo, al intentar instalar pyOpenSSL, pip indica que no puede encontrar el archivo 'ffi.h'. Sé que ffi.hexiste tanto como su directorio, entonces, ¿cómo hago para cerrar esta brecha entre ffi.hy pip?


si está haciendo esto para instalar scrappy, siga este tutorial clasense4.wordpress.com/2015/11/25/…
Dr Deo

Respuestas:


20

Puede usar CFLAGS(y / LDFLAGSo varias otras opciones de compilador y enlazador) delante del pipcomando (lo mismo para setup.py):

Algo similar a lo siguiente debería funcionar:

CFLAGS=-I/usr/include/libffi/include pip install pyOpenSSL

7
Esto no funcionó para mí, sino que lo libffi-devhizo la instalación .
codersofthedark

esto también solucionó mi falla en la instalación de pip3 jupyter que dio un error al compilar ffi.h en raspbian
Sebapi

245

También debe instalar el paquete de desarrollo.

libffi-deven Debian / Ubuntu, libffi-develen Redhat / Centos / Fedora.


6
Tenga en cuenta que el OP dice "Sé que existe ffi.h así como su directorio", lo que indica que la √ersion de desarrollo (encabezados) ya está instalada. Entonces esta respuesta resuelve otro problema.

1
apk add libffi-devfuncionó para mí en Alpine 3.11.6. Gracias
hmacias

23

Para agregar a la respuesta de mhawke, generalmente los sistemas basados ​​en Debian / Ubuntu son "-dev" en lugar de "-devel" para los sistemas basados ​​en RPM

Entonces, para Ubuntu seráapt-get install libffi libffi-dev

RHEL, CentOS, Fedora (hasta v22) yum install libffi libffi-devel

Fedora 23+ dnf install libffi libffi-devel

OSX / MacOS (asumiendo que homebrew está instalado)brew install libffi


2
Para ubuntu ahora es libffi6.
darkhipo

@darkhipo: tenga en cuenta que la biblioteca de desarrollo, es decir, libffi-dev, todavía se nombra libffi-dev(sin el 6). Esto es relevante para 11/2019 con Ubuntu 18.04.
Guy Avraham


4

piplos paquetes generalmente no usan pkg-config. Por lo tanto, debe configurar CFLAGSy LDFLAGSmanualmente:

CFLAGS=$(pkg-config --cflags libffi) LDFLAGS=$(pkg-config --libs libffi) pip install pyOpenSSL



3

Necesita instalar el paquete de desarrollo para libffi.

En sistemas basados ​​en RPM (Fedora, Redhat, CentOS, etc.), el paquete se denomina libffi-devel.

No estoy seguro acerca de los sistemas Debian / Ubuntu, estoy seguro de que alguien más lo hará.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.