PIP 安装无法找到 ffi.h,即使它可以识别 libffi

PIP install unable to find ffi.h even though it recognizes libffi

我已经在我的 Linux 服务器上安装了 libffi,并将 PKG_CONFIG_PATH 环境变量正确设置为正确的目录,因为 pip 识别出它已安装;然而,当尝试安装 pyOpenSSL 时,pip 指出它找不到文件 'ffi.h'。我知道 ffi.h 及其目录都存在,那么我该如何缩小 ffi.hpip 之间的差距?

您还需要安装开发包。

libffi-dev Debian/Ubuntu,libffi-devel Redhat/Centos/Fedora。

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

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

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

您需要安装 libffi 的开发包。

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

不确定 Debian/Ubuntu 系统,我敢肯定其他人会同意的。

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

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

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

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

RHEL、CentOS、Fedora(最高 v22) yum install libffi libffi-devel

软呢帽 23+ dnf install libffi libffi-devel

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

在 Debian 上,

apt-get install libffi-dev

在 CentOS 上:

yum install libffi-devel

Ubuntu/Mint

sudo apt-get install libffi6 libffi-dev