it-swarm.com.de

PIP-Installation kann ffi.h nicht finden, obwohl es libffi erkennt

Ich habe libffi auf meinem Linux-Server installiert und die Umgebungsvariable PKG_CONFIG_PATH Auf das richtige Verzeichnis gesetzt, da pip erkennt, dass sie installiert ist. Beim Versuch, pyOpenSSL zu installieren, gibt pip jedoch an, dass die Datei 'ffi.h' nicht gefunden werden kann. Ich weiß, dass sowohl ffi.h Als auch sein Verzeichnis vorhanden sind. Wie gehe ich vor, um diese Lücke zwischen ffi.h Und pip zu schließen?

62
DonutGaz

Sie können CFLAGS (und LDFLAGS oder verschiedene andere Compiler- und Linkeroptionen) vor dem pip -Befehl verwenden (ebenso für setup.py):

Etwas Ähnliches wie das Folgende sollte funktionieren:

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

Sie müssen auch das Entwicklungspaket installieren.

libffi-dev unter Debian/Ubuntu, libffi-devel auf Redhat/Centos/Fedora.

216
Lennart Regebro

Um die Antwort von mhawke zu ergänzen, sind die Debian/Ubuntu-basierten Systeme normalerweise "-dev" und nicht "-devel" für RPM-basierte Systeme

Also, für bunt wird es sein apt-get install libffi libffi-dev

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

Fedora 23 +dnf install libffi libffi-devel

OSX/MacOS (vorausgesetzt, Homebrew ist installiert) brew install libffi

18
ChrisN

Unter Debian

apt-get install libffi-dev
3
Volker Kerkhoff

pip Pakete verwenden normalerweise kein pkg-config. Deshalb sollten Sie CFLAGS und LDFLAGS manuell einstellen:

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

auf CentOS:

yum install libffi-devel
1

Ubuntu/Mint

Sudo apt-get install libffi6 libffi-dev 
1

Sie müssen das Entwicklungspaket für libffi installieren.

Auf RPM-basierten Systemen (Fedora, Redhat, CentOS usw.) heißt das Paket libffi-devel.

Ich bin mir nicht sicher über Debian/Ubuntu-Systeme, ich bin mir sicher, dass jemand anderes das sagen wird.

1
mhawke