Python pip安装失败,错误代码为1

时间:2015-07-17 17:52:32

标签: python installation centos pycurl

我正在使用CentOS6并且能够安装python2.7。创建virtualenv后,我开始安装各种python包。我可以像请求一样轻松安装一些软件包等。但安装像Numpy,scipy,gensim,pycurl这样的软件包是一个巨大的痛苦。它不断给我这个错误:

通过在安装了python2.7的virtualenv中运行pip install pycurl,我遇到了问题。

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

我不能修复这个setup.py egg_info问题。

运行yum install libcurl然后运行pip install pycurl后,我得到了这个:

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

5 个答案:

答案 0 :(得分:2)

您需要 libcurl开发库。用yum获取它:

yum install libcurl-devel

编辑:安装后,您似乎仍然缺少一些依赖项。您需要 Python开发库,使用yum获取它,如下所示:

yum install python-devel

如果上述安装无效,请尝试 rpm ,然后下载此Python-devel RPM for CentOS。然后通过rpm:

安装它
rpm -ivh python-devel-2.7.5-18.el7_1.1.x86_64.rpm

答案 1 :(得分:1)

Debian或Ubuntu派生的发行版:

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

其次是:

pip install cryptography

Red Hat派生的发行版:

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

其次是:

pip install cryptograph

答案 2 :(得分:0)

您需要安装Linux发行版的libcurl开发包,它提供curl库和头文件。

通过所有&#34; curl&#34; CentOS的软件包,你应该找到合适的软件包。

答案 3 :(得分:0)

问题可能是缺少pycurl的依赖关系。以下是我对类似问题的回答。 Check it here

答案 4 :(得分:0)

对我来说,我安装了所有依赖项

  1. pip install --upgrade setuptools
  2. sudo yum install gcc
  3. yum install python-devel
  4. yum install libcurl-devel
  5. 安装上面后,我得到了同样的错误,然后我升级了pip 以前我使用 7.0.1 然后我升级到 9.0.1 ,这对我有用。

    pip install --upgrade pip