热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在CentOS系统中安装Scrapy时常见的问题及解决方法

在CentOS7系统中安装Scrapy时遇到了一些挑战。尽管Scrapy在Ubuntu上安装简便,但在CentOS7上需要额外的配置和步骤。本文总结了常见问题及其解决方案,帮助用户顺利安装并使用Scrapy进行网络爬虫开发。

环境:centos7、python2.7

最近想做爬虫,觉得scrapy这个框架比较好,但是这个框架对ubuntu的支持很好,安装非常便捷,不过我用的centos7,折腾了不少时间。存在的问题跟其它人都一样,就是包依赖性的问题。
官方文档说,使用pip安装scrapy之前需要setuptools,pip依赖于setuptools,默认自带,所以不必安装。如果你不放心可以使用 pip install setuptools,会提示你已经安装好了。
官方文档还说,需要安装lxml。lxml顾名思义,是用来解析XML、HTML并建立DOM的库,依然使用 pip install setuptools安装。
另外还需要openssl。openssl因为其“心脏出血”漏洞,以及其后暴露出的项目组管理上问题受到了开源社区和各大操作系统厂家的批评,不过我们的scrapy框架依赖于openssl,所以还得安装它。各大linux上基本都默认安装了openssl,可以使用rpm -qa openssl查看,并使用yum -y install openssl安装。
在做完以上前期工作之后,我使用pip install scrapy,安装了一会后出现提示:

Command “/usr/bin/python -c “import setuptools, tokenize;file=’/tmp/pip-build-6svGBx/cffi/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(file).read().replace(‘\r\n’, ‘\n’), file, ‘exec’))” install –record /tmp/pip-JJNTSq-record/install-record.txt –single-version-externally-managed –compile” failed with error code 1 in /tmp/pip-build-6svGBx/cffi

意思应该是编译cffi的时候出了问题,于是尝试pip install cffi出现类似的错误提示,确定是这个错误了,但是为什么导致了这个错误以及怎样解决不知道。于是上overstack、百度、google搜,发现大部分人的问题都是包依赖性的问题,我觉得我这个也有很大可能是这个原因。于是按照其他人的做法,安装了很多包,最后发现错误出现在一个叫 libffi的库上面,libffi是一个用于高级语言之间的相互调用的处理的库。于是 pip install libffi-devel,然后pip install scrapy,成功!问题应该是编译cffi的时候少了libffi库!
问题因环境和操作而异,但是我觉得centos上安装scrapy的绝大多数问题都是包和库依赖性的问题,多看看其他人的解决方法、多试试就肯定能解决的。


推荐阅读
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
author-avatar
忧伤丿稻草展
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有