I have installed libffi
on my Linux server as well as correctly set the PKG_CONFIG_PATH
environment variable to the correct directory, as pip
recognizes that it is installed; however, when trying to install pyOpenSSL, pip states that it cannot find file 'ffi.h'. I know both thatffi.h
exists as well as its directory, so how do I go about closing this gap between ffi.h
and pip
?
问题:
回答1:
You can use CFLAGS
(and LDFLAGS
or various other compiler and linker options) in front of the pip
command (ditto for setup.py
):
Something similar to the following should work:
CFLAGS=-I/usr/include/libffi/include pip install pyOpenSSL
回答2:
You need to install the development package as well.
libffi-dev
on Debian/Ubuntu, libffi-devel
on Redhat/Centos/Fedora.
回答3:
To add to mhawke's answer, usually the Debian/Ubuntu based systems are "-dev" rather than "-devel" for RPM based systems
So, for Ubuntu it will be apt-get install libffi libffi-dev
RHEL, CentOS, Fedora (up to v22) yum install libffi libffi-devel
Fedora 23+ dnf install libffi libffi-devel
OSX/MacOS (assuming homebrew is installed) brew install libffi
回答4:
pip
packages usually don't use pkg-config
. Therefore, you should set CFLAGS
and LDFLAGS
manually:
CFLAGS=$(pkg-config --cflags libffi) LDFLAGS=$(pkg-config --libs libffi) pip install pyOpenSSL
回答5:
You need to install the development package for libffi
.
On RPM based systems (Fedora, Redhat, CentOS etc) the package is named libffi-devel
.
Not sure about Debian/Ubuntu systems, I'm sure someone else will pipe up with that.
回答6:
On Debian,
apt-get install libffi-dev