我正在使用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
答案 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)
对我来说,我安装了所有依赖项
安装上面后,我得到了同样的错误,然后我升级了pip 以前我使用 7.0.1 然后我升级到 9.0.1 ,这对我有用。
pip install --upgrade pip