win10下利用命令“conda install -c conda-forgescrapy"安装scrapy没有提示出现问题。运行scrapy startproject tutorial 后,报错 “ImportError:DLL load failed”。观察追踪信息,判断出出错语句为“from cryptography.hazmat.bindings._openssl import ffi, lib”。据此估计是与openssl相关的动态库出错。进入动态库目录(本人的位于C:\Users\Liu\Anaconda3\Library\bin),将文件ssleay32.dll的文件名改为ssleay32.dllold,再运行“from cryptography.hazmat.bindings._openssl import ffi, lib”,提示信息为“DLL load failed: 找不到指定的模块“。至此,确认出问题出在ssleay32.dll上(在网上搜索别人的帖子,有人讲用VS2015重新编译openssl即可,但为了编译他还要安装vs2015,太麻烦了,所以没这么做)。尝试了以下解决办法:
1、运行“conda install openssl”,重新安装了openssl,但问题依旧。
2、运行“conda create -n scrapyenv scrapy -c conda-forge”,重新安装各种最新版本包(见下图),试图建立一个新的虚拟环境。
在安装过程中退出了,可能 是网络原因造成的。再试了2次没成功,只能放弃了。
3、 重新下载了Anaconda4.4.0。联想到ssleay32.dll是32的动态库,这次干脆用了32位版本的(原来是64位的)。安装完毕,测试与openssl相关的使用没问题。
之后,运行命令:
conda install -c conda-forge scrapy
由于网络问题,安装过程中也退出了。再试多次仍有问题。没办法,只能不断重试直至成功(怎办呢,网络就这样呀)。
安装完毕后,运行命令
scrapy startproject tutorial
出现语句:
New Scrapy project 'tutorial', usingtemplate directory'C:\\Anaconda3\\lib\\site-packages\\scrapy\\templates\\project', created in:
C:\Users\Liu\tutorial
You can start your first spider with:
cd tutorial
scrapy genspider example example.com
照着做,进入tutorial目录,运行命令 scrapy genspider example example.com,出现语句:
Created spider 'example' using template'basic' in module:
tutorial.spiders.example
至此,scrapy总算能用了吧!