安装 python-telegram-bot 时出现错误“未找到包‘libffi’”

avt*_*550 4 python raspberry-pi python-telegram-bot

我尝试在我的树莓派上安装 python-telegram-bot 但遇到了这个问题:

Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-QLuRQr/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-1vjudm-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    ...
    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-Ub3vap/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-armv7l-2.7/c/_cffi_backend.o
    c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
     #include <ffi.h>
                     ^
    compilation terminated.
    error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-QLuRQr/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-1vjudm-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-QLuRQr/cffi/
Run Code Online (Sandbox Code Playgroud)

我尝试了这个命令,但遇到了同样的问题:

pip install python-telegram-bot==12.0.0b1 --upgrade 
pip install python-telegram-bot --upgrade
python -m pip install python-telegram-bot
Run Code Online (Sandbox Code Playgroud)

Gin*_*pin 10

看来主要问题是这样的:

  Package libffi was not found in the pkg-config search path.
  Perhaps you should add the directory containing `libffi.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'libffi' found
Run Code Online (Sandbox Code Playgroud)

您正在安装的 Python 包需要 CFFI,而 CFFI 需要libffi.

libffi首先尝试安装:

$ sudo apt-get update
$ sudo apt-get install libffi-dev
Run Code Online (Sandbox Code Playgroud)

如果您使用的是无法使用的非标准操作系统(不是 Raspbian)apt,您可以libffi-dev直接从Debian手动下载并安装文件,或者从OpenEmbedded自行构建。