热门标签 | 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的绝大多数问题都是包和库依赖性的问题,多看看其他人的解决方法、多试试就肯定能解决的。


推荐阅读
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • 本文详细介绍了Linux系统中的进程管理函数,涵盖了获取进程ID、用户ID、创建子进程、信号处理等关键操作。通过这些函数,开发者可以更好地控制和管理进程行为。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 近期我们开发了一款包含天气预报功能的万年历应用,为了满足这一需求,团队花费数日时间精心打造并测试了一个稳定可靠的天气API接口,现正式对外开放。 ... [详细]
  • 本文介绍了一种根据目标检测结果,从原始XML文件中提取并分析特定类别的方法。通过解析XML文件,筛选出特定类别的图像和标注信息,并保存到新的文件夹中,以便进一步分析和处理。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 本文将详细介绍如何安装和使用 CactiEZ 的中文版本,帮助那些对英文界面不太熟悉的用户轻松掌握这一强大的网络监控工具。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
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社区 版权所有