PIP安装无法findffi.h,即使它识别libffi
我已经在我的Linux服务器上安装了libffi ,并正确地将PKG_CONFIG_PATH环境variables设置为正确的目录,因为pip识别它已经安装; 然而,当试图安装pyOpenSSL时,pip指出它找不到文件“ffi.h”。 我知道ffi.h和它的目录都存在,那么我怎样才能解决ffi.h和pip之间的差距呢?
您可以在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 。 因此,您应该手动设置CFLAGS和LDFLAGS :
CFLAGS=$(pkg-config --cflags libffi) LDFLAGS=$(pkg-config --libs libffi) pip install pyOpenSSL
您需要安装libffi的开发包。
在基于RPM的系统上(Fedora,Redhat,CentOS等),该软件包被命名为libffi-devel 。
不知道Debian / Ubuntu系统,我敢肯定别人会用这个。