Я установил 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