Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python pip install error: command 'gcc' failed with exit status 1

I tried install quandl

    pip install quandl

but I got following error:

    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.
like image 320
newleaf Avatar asked Jun 29 '16 19:06

newleaf


1 Answers

You need libffi available along with development headers so cffi can compile against it. You can get this by doing apt-get install libffi-dev or yum install libffi-devel (or various other commands for less common distributions).

However, if you upgrade to the latest pip (as you can see it suggests at the end there) you may be able to install it without a compiler or libffi! This is because I uploaded cffi manylinux1 wheels this morning. These wheels are pre-compiled and come with a bundled libffi. If you're on an eligible distribution pip will automatically use these wheels (provided you're on 8.1+) while distributions that can't use them will continue to require compilation as normal.

Also, since your logs indicate you're also installing cryptography you'll need openssl-devel (on Red Hat derivatives) or libssl-dev on Debian/Ubuntu derivatives to have that successfully compile. (And if you've never compiled any python packages before you'll also need python-devel or python-dev).

like image 84
Paul Kehrer Avatar answered Oct 24 '22 00:10

Paul Kehrer