PIP安装无法findffi.h,即使它识别libffi

我已经在我的Linux服务器上安装了libffi ,并正确地将PKG_CONFIG_PATH环境variables设置为正确的目录,因为pip识别它已经安装; 然而,当试图安装pyOpenSSL时,pip指出它找不到文件“ffi.h”。 我知道ffi.h和它的目录都存在,那么我怎样才能解决ffi.hpip之间的差距呢?

您可以在pip命令前面使用CFLAGS (和LDFLAGS或各种其他编译器和链接器选项)(对于setup.py同上):

类似于下面的东西应该工作:

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

您还需要安装开发包。

Debian / Ubuntu上的libffi-dev ,Redhat / Centos / Fedora上的libffi-devel

要添加到mhawke的答案,基于RPM的系统通常基于Debian / Ubuntu的系统是“-dev”而不是“-devel”

因此,对于Ubuntu ,它将被apt-get install libffi libffi-dev

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

Fedora 23+ dnf install libffi libffi-devel

OSX / MacOS (假设安装了自制软件) brew install libffi

pip包通常不使用pkg-config 。 因此,您应该手动设置CFLAGSLDFLAGS

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

您需要安装libffi的开发包。

在基于RPM的系统上(Fedora,Redhat,CentOS等),该软件包被命名为libffi-devel

不知道Debian / Ubuntu系统,我敢肯定别人会用这个。