【问题标题】:PIP install unable to find ffi.h even though it recognizes libffiPIP 安装无法找到 ffi.h,即使它识别 libffi
【发布时间】:2015-10-09 02:38:49
【问题描述】:

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

【问题讨论】:

标签: python linux pip


【解决方案1】:

您还需要安装开发包。

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

【讨论】:

  • 请注意,OP声明“我知道ffi.h存在以及它的目录”,表明已经安装了开发√ersion(标题)。所以这个答案解决了另一个问题。
  • apk add libffi-dev 在 Alpine 3.11.6 上为我工作。谢谢
【解决方案2】:

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

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

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

【讨论】:

  • 这对我不起作用,而安装 libffi-dev 确实如此。
  • 这也修复了我失败的 pip3 install jupyter 导致在 raspbian 上编译 ffi.h 时出错
【解决方案3】:

您需要为libffi安装开发包。

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

不确定 Debian/Ubuntu 系统,我相信其他人会对此表示赞同。

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      为了补充 mhawke 的回答,通常基于 Debian/Ubuntu 的系统是“-dev”,而不是基于 RPM 的系统的“-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

      【讨论】:

      • ubuntu 现在是 libffi6。
      • @darchipo - 请注意,开发库,即 libffi-dev 仍然命名为 libffi-dev(没有 6)。这与使用 Ubuntu 18.04 的 11/2019 相关。
      【解决方案6】:

      在 Debian 上,

      apt-get install libffi-dev
      

      【讨论】:

        【解决方案7】:

        在 CentOS 上:

        yum install libffi-devel
        

        【讨论】:

        【解决方案8】:

        Ubuntu/Mint

        sudo apt-get install libffi6 libffi-dev 
        

        【讨论】:

        • 请详细说明
        • ChrisN 已经涵盖了这一点。如果您的回答增加了附加值,请说明。
        猜你喜欢
        • 1970-01-01
        • 2014-05-17
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 2011-09-23
        • 2015-03-13
        • 1970-01-01
        • 2021-06-24
        相关资源
        最近更新 更多