众所周知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找不到问题的解决方法