我自己的电脑是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会遇到问题:从更新日志来看那个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.
-----