简体   繁体   中英

Python pip install failing with error code 1

I am working on CentOS6 and have been able to install python2.7. After creating a virtualenv I have started installing various packages of python. I can install some packages easily like requests,etc. but installing packages like Numpy, scipy, gensim, pycurl are a huge pain. It keeps on giving me this error:

By running pip install pycurl from within the virtualenv with python2.7 installed I am running into the problem.

Collecting pycurl
  Downloading pycurl-7.19.5.1.tar.gz (142kB)
    100% |████████████████████████████████| 143kB 2.8MB/s
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/tmp/pip-build-ClD2EM/pycurl/setup.py", line 634, in <module>
        ext = get_extension(split_extension_source=split_extension_source)
      File "/tmp/pip-build-ClD2EM/pycurl/setup.py", line 392, in get_extension
        ext_config = ExtensionConfiguration()
      File "/tmp/pip-build-ClD2EM/pycurl/setup.py", line 65, in __init__
        self.configure()
      File "/tmp/pip-build-ClD2EM/pycurl/setup.py", line 100, in configure_unix
        raise ConfigurationError(msg)
    __main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ClD2EM/pycurl

I am not abel to fix this setup.py egg_info problem.

After running yum install libcurl and then running pip install pycurl i got this:

Collecting pycurl
  Using cached pycurl-7.19.5.1.tar.gz
Building wheels for collected packages: pycurl
  Running setup.py bdist_wheel for pycurl
  Complete output from command /home/pgupta/python27_project/bin/python2.7 -c "import setuptools;__file__='/tmp/pip-build-bH6H_j/pycurl/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpG3CwZBpip-wheel-:
  Using curl-config (libcurl 7.19.7)
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-2.7
  creating build/lib.linux-x86_64-2.7/curl
  copying python/curl/__init__.py -> build/lib.linux-x86_64-2.7/curl
  running build_ext
  building 'pycurl' extension
  creating build/temp.linux-x86_64-2.7
  creating build/temp.linux-x86_64-2.7/src
  gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPYCURL_VERSION="7.19.5.1" -DHAVE_CURL_SSL=1 -I/usr/include/python2.7 -c src/docstrings.c -o build/temp.linux-x86_64-2.7/src/docstrings.o
  In file included from src/docstrings.c:4:
  src/pycurl.h:4:20: error: Python.h: No such file or directory
  src/pycurl.h:5:22: error: pythread.h: No such file or directory
  src/pycurl.h:56:4: error: #error "Need Python version 2.4 or greater to compile pycurl."
  src/pycurl.h:165:5: warning: #warning "libcurl was compiled with SSL support, but configure could not determine which " "library was used; thus no SSL crypto locking callbacks will be set, which may " "cause random crashes on SSL requests"
  In file included from src/docstrings.c:4:
  src/pycurl.h:232: error: expected ‘)’ before ‘*’ token
  src/pycurl.h:234: error: expected ‘)’ before ‘*’ token
  src/pycurl.h:236: error: expected ‘)’ before ‘*’ token
  src/pycurl.h:286: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
  src/pycurl.h:328: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
  src/pycurl.h:343: error: expected specifier-qualifier-list before ‘PyThread_type_lock’
  src/pycurl.h:347: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
  src/pycurl.h:397: error: expected ‘)’ before ‘*’ token
  src/pycurl.h:398: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:406: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:408: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:410: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:415: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘Curl_Type’
  src/pycurl.h:416: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘CurlMulti_Type’
  src/pycurl.h:417: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘CurlShare_Type’
  src/pycurl.h:419: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:420: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:421: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:422: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:424: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:425: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  src/pycurl.h:426: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for pycurl
Failed to build pycurl
Installing collected packages: pycurl
  Running setup.py install for pycurl
    Complete output from command /home/pgupta/python27_project/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-bH6H_j/pycurl/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Iit36I-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pgupta/python27_project/include/site/python2.7/pycurl:
    Using curl-config (libcurl 7.19.7)
    running install
    running build
    running build_py
    running build_ext
    building 'pycurl' extension
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPYCURL_VERSION="7.19.5.1" -DHAVE_CURL_SSL=1 -I/usr/include/python2.7 -c src/docstrings.c -o build/temp.linux-x86_64-2.7/src/docstrings.o
    In file included from src/docstrings.c:4:
    src/pycurl.h:4:20: error: Python.h: No such file or directory
    src/pycurl.h:5:22: error: pythread.h: No such file or directory
    src/pycurl.h:56:4: error: #error "Need Python version 2.4 or greater to compile pycurl."
    src/pycurl.h:165:5: warning: #warning "libcurl was compiled with SSL support, but configure could not determine which " "library was used; thus no SSL crypto locking callbacks will be set, which may " "cause random crashes on SSL requests"
    In file included from src/docstrings.c:4:
    src/pycurl.h:232: error: expected ‘)’ before ‘*’ token
    src/pycurl.h:234: error: expected ‘)’ before ‘*’ token
    src/pycurl.h:236: error: expected ‘)’ before ‘*’ token
    src/pycurl.h:286: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
    src/pycurl.h:328: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
    src/pycurl.h:343: error: expected specifier-qualifier-list before ‘PyThread_type_lock’
    src/pycurl.h:347: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
    src/pycurl.h:397: error: expected ‘)’ before ‘*’ token
    src/pycurl.h:398: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:406: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:408: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:410: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:415: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘Curl_Type’
    src/pycurl.h:416: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘CurlMulti_Type’
    src/pycurl.h:417: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘CurlShare_Type’
    src/pycurl.h:419: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:420: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:421: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:422: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:424: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:425: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    src/pycurl.h:426: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/home/pgupta/python27_project/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-bH6H_j/pycurl/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Iit36I-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pgupta/python27_project/include/site/python2.7/pycurl" failed with error code 1 in /tmp/pip-build-bH6H_j/pycurl

You need a libcurl development library . Get it with yum:

yum install libcurl-devel

EDIT: After you installed it, you appear to have some missing dependencies, still. You need Python development library , get it with yum as follows:

yum install python-devel

If the installation above doesn't work, try rpm instead by download this Python-devel RPM for CentOS . Then install it via rpm:

rpm -ivh python-devel-2.7.5-18.el7_1.1.x86_64.rpm

Debian or Ubuntu derived distributions:

apt-get install build-essential libssl-dev libffi-dev python-dev 

Followed by:

pip install cryptography

Red Hat derived distributions:

yum install gcc openssl-devel libffi-devel python-devel 

Followed by:

pip install cryptograph

You need install libcurl development package of your Linux distribution which provides curl libraries and header files.

Go through all "curl" packages for CentOS and you should find the right one.

The problem can be with missing dependencies for pycurl. Here is my answer to similar question which worked for me. Check it here

For me , I installed all the dependencies

  1. pip install --upgrade setuptools
  2. sudo yum install gcc
  3. yum install python-devel
  4. yum install libcurl-devel

After installing above , I was getting the same error , then i upgraded pip previously i was using 7.0.1 then i upgraded to 9.0.1 and it worked for me.

pip install --upgrade pip

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM