安装scrapy时出现gcc失败错误

时间:2012-06-07 07:31:05

标签: python scrapy

当我安装scrapy时,我收到以下错误(命令'gcc'失败,退出状态为1 )。我正在使用Centos,是的,我安装了最新版本的gcc。但我不知道为什么我会收到这个错误。我试过谷歌搜索但无法找到解决方案

  

OpenSSL / crypto / crypto.c:在函数'initcrypto'中:   OpenSSL / crypto / crypto.c:817:警告:隐式声明函数   'ERR_load_crypto_strings'OpenSSL / crypto / crypto.c:818:警告:   隐式声明函数'OpenSSL_add_all_algorithms'   OpenSSL / crypto / crypto.c:832:错误:'crypto_X509_New'未声明   (首次在此函数中使用)OpenSSL / crypto / crypto.c:833:错误:   'crypto_X509Name_New'未声明(首次使用此功能)   OpenSSL / crypto / crypto.c:834:错误:'crypto_X509Req_New'未声明   (首次在此函数中使用)OpenSSL / crypto / crypto.c:835:错误:   'crypto_X509Store_New'未声明(首次使用此功能)   OpenSSL / crypto / crypto.c:836:错误:'crypto_PKey_New'未声明   (首次使用此函数)OpenSSL / crypto / crypto.c:838:错误:   'crypto_PKCS7_New'未声明(首次使用此功能)   OpenSSL / crypto / crypto.c:839:错误:'crypto_NetscapeSPKI_New'   未声明(在此函数中首次使用)OpenSSL / crypto / crypto.c:859:   错误:'X509_FILETYPE_PEM'未声明(首次使用此功能)   OpenSSL / crypto / crypto.c:860:错误:'X509_FILETYPE_ASN1'未声明   (首次在此函数中使用)OpenSSL / crypto / crypto.c:863:错误:   'EVP_PKEY_RSA'未声明(首次使用此功能)   OpenSSL / crypto / crypto.c:864:错误:'EVP_PKEY_DSA'未声明(首先   在此函数中使用)错误:安装脚本退出并显示错误:命令   'gcc'以退出状态1

失败

我在安装lxml时遇到同样的错误

  

src / lxml / lxml.etree.c:162737:错误:'XML_XPATH_UNKNOWN_FUNC_ERROR'   未声明(在此函数中首次使用)src / lxml / lxml.etree.c:162747:   错误:'XML_XPATH_INVALID_OPERAND'未声明(首次使用此处   function)src / lxml / lxml.etree.c:162757:错误:   'XML_XPATH_INVALID_TYPE'未声明(首次在此函数中使用)   src / lxml / lxml.etree.c:162767:错误:'XML_XPATH_INVALID_ARITY'   未声明(在此函数中首次使用)src / lxml / lxml.etree.c:162777:   错误:'XML_XPATH_INVALID_CTXT_SIZE'未声明(首先在此使用   function)src / lxml / lxml.etree.c:162787:错误:   'XML_XPATH_INVALID_CTXT_POSITION'未声明(首次使用此处   function)src / lxml / lxml.etree.c:163133:错误:'LIBXSLT_VERSION'   未声明(在此函数中首次使用)src / lxml / lxml.etree.c:163145:   错误:'xsltLibxsltVersion'未声明(首次在此函数中使用)   src / lxml / lxml.etree.c:163157:错误:   '__pyx_v_4lxml_5etree_XSLT_DOC_DEFAULT_LOADER'未申报(首次使用)   在这个函数中)src / lxml / lxml.etree.c:163157:错误:   'xsltDocDefaultLoader'未声明(首次在此函数中使用)   src / lxml / lxml.etree.c:163166:错误:   '__pyx_f_4lxml_5etree__xslt_doc_loader'未申报(首次使用此处   函数)错误:安装脚本退出并显示错误:命令'gcc'失败   退出状态1

6 个答案:

答案 0 :(得分:14)

您没有编译此模块所需的C库。 对于lxml,您必须安装以下软件包。

sudo yum install python-devel libxml2-devel libxslt-devel

要解决Scrapy的OpenSSL问题,请安装pyOpenSSL

sudo yum install pyOpenSSL

注意:这些是fedora linux的软件包名称。其他发行版可能具有不同的包名称。

答案 1 :(得分:2)

还要确保安装了gcc:

sudo yum install gcc

答案 2 :(得分:1)

这是我在Linux Mint Nadia上的解决方案:

sudo apt-get install libxml2-dev libxslt-dev

我已经安装了python-dev。我注意到,一旦安装了xml和xslt依赖项,pip就可以为我安装pyOpenSSL。

答案 3 :(得分:0)

我的raspi自动更正为

sudo apt-get install libxml2-dev libxslt1-dev

我也跑了:

sudo apt-get install libffi-dev

不确定是否有必要。

答案 4 :(得分:0)

在Fedora 23上,我必须为$ pip install scrapy安装以下软件包才能成功完成。

sudo dnf install python-devel libxml2-devel libxslt-devel libffi-devel libffi-devel

如果设置过程抱怨缺少文件,例如:

fatal error: openssl/opensslv.h: No such file or directory
    compilation terminated.
    error: command 'gcc' failed with exit status 1

执行$ dnf provides *filename (dnf提供* openssl / opensslv.h)以查找所需的软件包并进行安装。

答案 5 :(得分:0)

2019年10月更新的答案-macOS

对于macOS上的人,更具体地说,我正在运行macOS Mojave v10.14.6 atm。我在终端中运行了以下命令,这有助于解决我的问题。显然我的Xcode Command-line工具需要更新。

xcode-select --install