月度归档:2014年12月

scrapy在Window7和Centos6.5下的安装

在window下直接使用pip进行安装scrapy,可能会失败,原因是scrapy依赖比较多的其它库如pyopenssl\twisted等第三方库,这些库有一些是需要使用vc进行编译的,而这些库有可能也是需要Git进行下载。

也许到这里你已经知道需要准备什么环境来安装scrapy了。正是如下所示:

1.安装ActivePython-2.7.8.10-win32,内置了pip,easy_install这个包管理工具,省去了不少麻烦。

2.安装visual studio 2008+,+表示可以更新的版本如VS2010、VS2012等。

3.安装Git-1.9.2-preview。

4.pip install scrapy,耐心等待可以了。

 

在CentOS中呢?会遇到比较多的麻烦,原因是centos系统自带了python2.6版本,而我们开发使用的版本是2.7.x版,在centos中的yum包管理工具,直接依赖python2.6,如果直接使用python2.7.x源码编译然后make install方式安装,会导致yum工具无法使用,这是我们不愿意看到的。使用activepython2.7.8就可以避免了吗?答案是NO,但为什么仍然使用它呢?原因是它集成了较多开发包和工具,很省事。

安装顺序如下:

1.安装ActivePython-2.7.8.10-linux,点击install.sh文件,安装到/activepython2.7目录下。

2.使用vim在/etc/profile文件尾部添加执行路径,如下:

export PATH=/activepython2.7/bin: $PATH

3.运行source /etc/profile,在当前终端上激活该路径。

4.运行echo $PAHT检查目标路径是否在输出结果中。

5.检查pip 和easy_install 命令是否正常。

6.在安装scrapy前先根据如下命令安装编译环境。

yum erase firefox,如果不想升级firefox,可把firefox的安装命令移除,一般情况下erase firefox后,需要重启系统。

yum -y install firefox  gcc gcc-c++ autoconf automake gdb git perl svn libtool flex bison  pkgconfig vim subversion git lrzsz  openssl curl wget curl p7zip mysql安装所有基础开发环境。

yum install -y python-devel libxml2-devel libxslt-devel python-lxml sqlite-devel libffi-devel openssl-devel mysql-devel zlib-devel curl-devel 安装scrapy依赖的库文件,如果不安装这些开发库,scrapy会安装失败,本人经历了N多次失败后,才找到所有的依赖库,在找到这些依赖库前,曾多次怀疑centos是否具备安装activepython的条件,而这种怀疑是基于window安装太顺畅所影响的。

yum -y install gcc gcc-c++ autoconf automake git perl svn libtool flex bison pkgconfig vim subversion lrzsz openssl curl wget curl p7zip mysql python-devel libxml2-devel libxslt-devel python-lxml sqlite-devel libffi-devel openssl-devel mysql-devel zlib-devel curl-devel

7.在第6个步骤完成后,就可以直接使用命令如下完成安装了。

pip install scrapy

 

Scrapy的调试

关于scrapy调试问题,较为麻烦,故在百度上搜索,再结合本人实践,有如下方法:

1.直接利用scrapy的cmdline.py执行文件进行调试。如下图:

C:\Python27\Lib\site-packages\scrapy\cmdline.py

crawl dmoz

D:\vipshop\crawls\tutorial\

在命令行执行的命令为:

scrapy crawl dmoz

工程文件目录结构:

方法二:

在scrapy.cfg目录下新建main.py文件,并填上如下代码:

from scrapy import cmdline

cmdline.execute(“scrapy crawl dmoz”.split())

然后就可直接调试该文件了。

方法三:

把scrapy\cmdline.py文件拷贝到与scrapy.cfg相同的目录下,直接调试运行,也是可行的。

此外这也方法也启发我们,我们可以自由地定制我们想要的运行方式,例如在该代码上增加套接字功能又或者增加调度器等,而在scrapy目录下所有关键py文件都支持这样的拷贝,是不是很神奇哦。