python2.7下安装scrapy

第一次安装

我自己的电脑是win7 64位系统,最近在学python爬虫,找了本python3的教材,看到scrapy这块安装好scrapy之后才发现win7现在不支持python3的scrapy,于是要换回python2. scrapy主要的问题是其需要的一系列包似乎需要c的一些代码包所以要安装visual studio之类的东西。


现在有python2.7.11和3.4.1,其中2.7里有scrapy1.1.0,没有twisted。

现在执行py2.7的scrapy会遇到问题:


raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'Twisted>=10.0.0'distribution was not found and is required by scrapy.


看来是需要为python2.7安装twisted。


然后我用pip install twisted 试着安装,
结果会弹出错误:


raise ValueError(str(list(result.keys())))
ValueError: [u'path']


接着我查看py3的pip安装包会不会出现同样的问题。
先随便装了一个py3中还没有的包 atlas 没有出现问题,
由于py3中已经有twisted了,所以现在我要把twisted卸载再安装


结果是可以成功为py3通过pip安装twisted,说明py2的pip缺少一些配置
为了进一步确认我在py2中用pip随便安了一个包 attr,发现可以成功安装,说明不是pip本身的问题,而是由于要安装的包本身需要一些其他必要条件。


网上说下载安装
pywin32-214.win-amd64-py2.7.exe from http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/
能解决问题


下载后直接安装说python2.7 version not found。我估计是因为py27路径没有加到系统环境变量中。
于是做更改
可是我发现C:\Python27已经在系统变量path里了,在pywin32的安装程序里也无法输入路径。
于是我尝试用pip安装pywin32可是发现py2的pip中已经有pywin32(214)了。


不知道是什么问题
于是尝试stackoverflow上给的另一种方法:
Install "Microsoft Visual Studio 2008 Professional Edition" with the "X64 Compiler and Tools" option enabled.


我查到电脑上有vs2010安装程序于是先安这个,其中有说到安装Microsoft VS 2010 64位系统必备(x64)。估计和上面的"X64 Compiler and Tools" 差不多。安装好vs2010后直接再安装pip install twisted,依然显示同样的错误。下面重启电脑再试一次


重启之后问题解决!!!py2 的 twisted 16.2.0 安装成功


再运行scrapy遇到新问题


raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pyasn1-modules' distribution was not found and is required by service-identity.


为了以防万一,先pip insatll --upgrade scrapy更新一下。
更新之后问题解决。可以在cmd下正常打开scrapy

从更新日志来看那个pyasn1也是scrapy的一个dependency的包。


第二次安装

第二次安装是因为开始学习Flask时接触了virtualenv,于是想试一下。先试着装三个之前用的包:tweepy, pymongo 和 scrapy。前两个在虚拟环境中用pip很快安装上了。后面安装scrapy时报错,说是没有安装libxml2. 于是找了下原来的python是否安装了这个包。结果发现没有libxml2,而是安装了lxml。在上面第一次安装中没有提到这两个包,不过我记得之前lxml是手动安装过的,可能是在学BeautifulSoup的时候吧。


但问题是之前的python虽然已经安装了lxml但是并没有安装libxml2.


之后在下面这个网址上找libxml2的安装包,安装时报错

ftp://xmlsoft.org/libxml2/python/

错误是:

failed to find headers for libxml2: update includes_dir


之后又从原来用过的一个网址下载libxml2的whl文件试着安装

http://www.lfd.uci.edu/~gohlke/pythonlibs/

安装成功


之后在virtualenv中再用pip 安装scrapy

还是无法直接在安装过程中安装lxml。

然后我在电脑上找到了原来记录安装scrapy的txt文档。在末尾提到了也是在上面给的网址中下载lxml的whl文件,然后安装成功

问题解决。

再次用pip安装scrapy,安装成功!!


总之目前来看,这个网址是安装python包最好的地方,尽管其中有些包还不支持python3,不过所有这上面给出的包都能很快安装完。

文档:

-----

"pip install scrapy"
And I got an error saying that i need "vcvarsall.dat"
Then I read an article saying that I need a visual studio to provide some sort of the source code
at here:
https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/
Make sure to select the first option of C++(basic or expand or something like that) and the Python one in the checkbox.

After downloading and installing visual studio you might meet this error:
"could not find function xmlcheckversion in library libxml2. is libxml2 installed"

which means you also need lxml 
so download the whl file of lxml for your version of python and pc at
"http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml"
and install it.

then
"pip install scrapy"
and then everything is working fine.

-----

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值