J'ai installé libffi
sur mon serveur Linux et ai correctement paramétré la variable d'environnement PKG_CONFIG_PATH
dans le bon répertoire, car pip
reconnaît qu'elle est installée. Cependant, lors de la tentative d'installation de pyOpenSSL, pip indique qu'il ne peut pas trouver le fichier 'ffi.h'. Je sais que thatffi.h
existe aussi bien que son répertoire. Alors, comment puis-je combler cet écart entre ffi.h
et pip
?
Vous pouvez utiliser CFLAGS
(et LDFLAGS
ou diverses autres options du compilateur et de l'éditeur de liens) devant la commande pip
(idem pour setup.py
):
Quelque chose de semblable à ce qui suit devrait fonctionner:
CFLAGS=-I/usr/include/libffi/include pip install pyOpenSSL
Vous devez également installer le package de développement.
libffi-dev
sur Debian/Ubuntu, libffi-devel
sur Redhat/Centos/Fedora.
Pour ajouter à la réponse de mhawke, les systèmes basés sur Debian/Ubuntu sont généralement "-dev" plutôt que "-devel" pour les systèmes basés sur RPM.
Donc, pour bunt ce sera apt-get install libffi libffi-dev
RHEL, CentOS, Fedora (jusqu'à la version 22)yum install libffi libffi-devel
Fedora 23 +dnf install libffi libffi-devel
OSX/MacOS (en supposant que homebrew est installé) brew install libffi
Sur Debian,
apt-get install libffi-dev
Les paquets pip
n'utilisent généralement pas pkg-config
. Par conséquent, vous devez définir CFLAGS
et LDFLAGS
manuellement:
CFLAGS=$(pkg-config --cflags libffi) LDFLAGS=$(pkg-config --libs libffi) pip install pyOpenSSL
sur CentOS:
yum install libffi-devel
Ubuntu/Mint
Sudo apt-get install libffi6 libffi-dev
Vous devez installer le package de développement pour libffi
.
Sur les systèmes basés sur RPM (Fedora, Redhat, CentOS, etc.), le package s'appelle libffi-devel
.
Pas sûr des systèmes Debian/Ubuntu, je suis sûr que quelqu'un d'autre s'en chargera.