Я установил libffi на свой Linux-сервер, а также правильно установил переменную среды PKG_CONFIG_PATH в правильный каталог, так как pip распознает, что он установлен; однако при попытке установить pyOpenSSL, pip утверждает, что он не может найти файл 'ffi.h'. Я знаю и то, что ffi.h существует, а также его каталог, поэтому как я могу закрыть этот пробел между ffi.h и pip?
PIP install не может найти ffi.h, даже если он распознает libffi
Ответ 1
Вы можете использовать CFLAGS (и LDFLAGS или различные другие параметры компилятора и компоновщика) перед командой 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