Linux中openssl/opensslv.h找不到问题的解决方法

  

  

众所周知scrapy是Python中鼎鼎大名的爬虫框架,在安装scrapy过程中碰到了openssl某个文件找不到的问题,并进行了分析,记录之。

  

  

Scrapy是python中鼎鼎大名的爬虫框架,笔者在Centos 7系统之上进行安装,发现了如下问题:

  

,, <代码>祝辞祝辞pip安装scrapy

  

由于安装过程中的过程信息比较多,这里只列出了其中的关键片段信息:

        运行egg_info   src/cryptography.egg-info/requires.txt写作要求   src/cryptography.egg-info/PKG-INFO写作   顶级名称写入src/cryptography.egg-info/top_level.txt   写作dependency_links src/cryptography.egg-info/dependency_links.txt   写作src/cryptography.egg-info/entry_points.txt入口点   阅读清单文件的src/cryptography.egg-info/SOURCES.txt   阅读清单模板“MANIFEST.in”   没有previously-included目录发现匹配的文档/_build '   警告:没有previously-included文件匹配‘*’目录下找到“向量”   编写清单文件的src/cryptography.egg-info/SOURCES.txt   运行build_ext   生成cffi模块的构建/temp.linux - x86_64 2.7/_padding.c '   创建构建/temp.linux - x86_64 2.7   生成cffi模块的构建/temp.linux - x86_64 2.7/_constant_time.c '   生成cffi模块的构建/temp.linux - x86_64 2.7/_openssl.c '   构建“_openssl”扩展   创建构建/temp.linux - x86_64 2.7/构建   创建构建/temp.linux - x86_64 2.7/构建/temp.linux - x86_64 2.7   gcc pthread -fno-strict-aliasing - 02 - g - wall管wp, -D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong - param=ssp-buffer-size=4 -grecord-gcc-switches - m64 - mtune=通用-D_GNU_SOURCE - fpic -fwrapv -DNDEBUG - 02 - g - wall管wp, -D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong - param=ssp-buffer-size=4 -grecord-gcc-switches - m64 - mtune=通用-D_GNU_SOURCE - fpic -fwrapv - fpic - i/usr/include/python2.7 - c/temp.linux - x86_64 2.7/_openssl构建。c - o构建/temp.linux - x86_64 2.7/构建/temp.linux - x86_64 - 2.7/_openssl.o   建立/temp.linux - x86_64 2.7/_openssl。c: 434:30:致命错误:openssl/opensslv。h:没有这样的文件或目录   # include & lt; openssl/opensslv.h>   ^   编译终止。   错误:命令gcc的失败的退出状态1      ----------------------------------------   命令/usr/bin/python2 - u - c”进口setuptools,标记;__file__=?tmp/pip-build-hRMlG0/加密/setup . py”; f=getattr(标记,“开放”,打开)(__file__);代码=f.read ()。替换(' \ r \ n ', ' \ n '); f.close (); exec(编译(代码、__file__ '执行'))“安装/tmp/pip-ReCoWo-record/install-record——记录。txt——single-version-externally-managed编译“失败与错误代码1/tmp/pip-build-hRMlG0/加密/(root@AY131203102210033c39Z ~) # yum安装openssl构建/temp.linux - x86_64 - 2.7/_openssl。c: 434:30:致命错误:openssl/opensslv。h:没有这样的文件或目录   C ^      退出>   加载插件:fastestmirror   从缓存hostfile加载镜像速度   *基础:mirrors.aliyun.com   * epel: mirrors.aliyun.com   *附加:mirrors.aliyun.com   *更新:mirrors.aliyun.com   安装包   名称:openssl   拱:x86_64   时代:1   版本:1.0.1e   版本:60. el7_3.1   大小:1.5米   回购:安装   摘要:公用事业的通用和TLS加密库的实现   URL: http://www.openssl.org/许可:OpenSSL   描述:OpenSSL工具包提供了支持之间的安全通信   :机器。OpenSSL包括证书管理工具和共享   :图书馆提供各种加密算法   :协议。之前      

基于其中的信息可以得知,openssl是一家安装过了,怎么还是会缺少openssl。c的文件呢?
  

  

经过一番思考,豁然发现一个基本规则,openssl已经安装二进制的可执行程序,而这里的安装scrapy则需要的是openssl的源文件程序,比如openssl.h。故这里需要补充安装的是openssh.h的开发版,其中包含相关的安装源代码文件。

  

  

在确认了问题之后,接下来就是安装openssl-devel的安装包了:

  

,,<代码>祝辞的在yum安装openssl-devel

  

在安装完成之后,重新安装scrapy,就可以顺利安装成功了

  

  

推而广之,在Linux系统中都存在类似的问题,在安装特定安装包的过程中,其依赖某些第三方开发包,会曝出某些文件找不到的错误,一般情况下是需要安装依赖包的开发版本的。这个规则应该是通用的。

  

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

Linux中openssl/opensslv.h找不到问题的解决方法