Подтвердить что ты не робот

PIP install не может найти ffi.h, даже если он распознает libffi

Я установил libffi на свой Linux-сервер, а также правильно установил переменную среды PKG_CONFIG_PATH в правильный каталог, так как pip распознает, что он установлен; однако при попытке установить pyOpenSSL, pip утверждает, что он не может найти файл 'ffi.h'. Я знаю и то, что ffi.h существует, а также его каталог, поэтому как я могу закрыть этот пробел между ffi.h и pip?

4b9b3361

Ответ 1

Вы можете использовать CFLAGSLDFLAGS или различные другие параметры компилятора и компоновщика) перед командой pip (для setup.py):

Нечто похожее на следующее должно работать:

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

Ответ 2

Вам также необходимо установить пакет разработки.

libffi-dev на Debian/Ubuntu, libffi-devel на Redhat/Centos/Fedora.

Ответ 3

Чтобы добавить ответ mhawke, обычно системы на основе Debian/Ubuntu являются "-dev", а не "-devel" для систем на основе RPM.

Итак, для 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

Ответ 4

pip пакеты обычно не используют pkg-config. Поэтому вы должны установить CFLAGS и LDFLAGS вручную:

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

Ответ 5

Вам нужно установить пакет разработки для libffi.

В системах на основе RPM (Fedora, Redhat, CentOS и т.д.) пакет называется libffi-devel.

Не уверен в системах Debian/Ubuntu, я уверен, что кто-то еще это обсудит.

Ответ 6

На Debian,

apt-get install libffi-dev

Ответ 7

на CentOS:

yum install libffi-devel

Ответ 8

Ubuntu/Mint

sudo apt-get install libffi6 libffi-dev