python pip install error:命令'gcc'失败,退出状态为1

时间:2016-06-29 19:31:04

标签: install pip

我尝试安装quandl

    pip install quandl

但我收到了以下错误:

    Collecting quandl
    Using cached Quandl-3.0.1-py2.py3-none-any.whl
    Collecting pyOpenSSL (from quandl)
    Using cached pyOpenSSL-16.0.0-py2.py3-none-any.whl
    Requirement already satisfied (use --upgrade to upgrade): pyasn1 in      /usr/local/lib/python3.2/dist-packages (from quandl)
    Collecting more-itertools (from quandl)
    Using cached more-itertools-2.2.tar.gz
    Requirement already satisfied (use --upgrade to upgrade): six in ./.local/lib/python3.2/site-packages (from quandl)
    Collecting ndg-httpsclient (from quandl)
    Using cached ndg_httpsclient-0.4.1.tar.gz
    Requirement already satisfied (use --upgrade to upgrade): numpy>=1.8 in /usr/local/lib/python3.2/dist-packages (from quandl)
    Requirement already satisfied (use --upgrade to upgrade): python-dateutil in ./.local/lib/python3.2/site-packages (from quandl)
    Requirement already satisfied (use --upgrade to upgrade): pandas>=0.14 in ./.local/lib/python3.2/site-packages (from quandl)
    Collecting requests>=2.7.0 (from quandl)
    Using cached requests-2.10.0-py2.py3-none-any.whl
    Collecting inflection>=0.3.1 (from quandl)
    Using cached inflection-0.3.1.tar.gz
    Collecting cryptography>=1.3 (from pyOpenSSL->quandl)
    Using cached cryptography-1.4.tar.gz
    Requirement already satisfied (use --upgrade to upgrade): pytz>=2011k in ./.local/lib/python3.2/site-packages (from pandas>=0.14->quandl)
    Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
    Requirement already satisfied (use --upgrade to upgrade): setuptools>=11.3 in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
    Requirement already satisfied (use --upgrade to upgrade): enum34 in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
    Requirement already satisfied (use --upgrade to upgrade): ipaddress in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
    Collecting cffi>=1.4.1 (from cryptography>=1.3->pyOpenSSL->quandl)
  Using cached cffi-1.7.0.tar.gz
    Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python3.2/dist-packages (from cffi>=1.4.1->cryptography>=1.3->pyOpenSSL->quandl)
    Installing collected packages: cffi, cryptography, pyOpenSSL, more-itertools, ndg-httpsclient, requests, inflection, quandl
  Running setup.py install for cffi
    Complete output from command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-svu9h7/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-lo33rp-record/install-record.txt --single-version-externally-managed --compile:
    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
    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
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-i686-3.2
    creating build/lib.linux-i686-3.2/cffi
    copying cffi/cparser.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/backend_ctypes.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/commontypes.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/vengine_cpy.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/verifier.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/cffi_opcode.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/model.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/api.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/setuptools_ext.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/lock.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/ffiplatform.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/__init__.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/vengine_gen.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/recompiler.py -> build/lib.linux-i686-3.2/cffi
    copying cffi/_cffi_include.h -> build/lib.linux-i686-3.2/cffi
    copying cffi/parse_c_type.h -> build/lib.linux-i686-3.2/cffi
    copying cffi/_embedding.h -> build/lib.linux-i686-3.2/cffi
    running build_ext
    building '_cffi_backend' extension
    creating build/temp.linux-i686-3.2
    creating build/temp.linux-i686-3.2/c
    gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -DUSE__THREAD -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python3.2mu -c c/_cffi_backend.c -o build/temp.linux-i686-3.2/c/_cffi_backend.o
    c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
    compilation terminated.

        error: command 'gcc' failed with exit status 1

        Command "/usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-svu9h7/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-lo33rp-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-svu9h7/cffi
You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

1 个答案:

答案 0 :(得分:3)

您需要libffi以及开发标题,因此cffi可以针对它进行编译。您可以通过执行apt-get install libffi-devyum install libffi-devel(或针对不太常见的发行版的其他各种命令)来实现此目的。

但是,如果你升级到最新的pip(正如你在那里看到的那样),你可以在没有编译器或libffi的情况下安装它!这是因为我今天早上上传了cffi manylinux1个轮子。这些轮子是预编译的,带有捆绑的libffi。如果您正在使用符合条件的分发点,则会自动使用这些轮子(如果您使用的是8.1+),而不能使用它们的分发将继续需要正常编译。

此外,由于您的日志表明您还在安装cryptography,因此需要openssl-devel(在Red Hat衍生品上)或libssl-dev在Debian / Ubuntu衍生品上才能成功编译。 (如果你还没有编译任何python包,那么你还需要python-develpython-dev)。