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系统,我敢肯定别人会用这个。