天天看点

win10 下运行scrapy startproject tutorial 报错 “ImportError:DLL load failed”

      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”,重新安装各种最新版本包(见下图),试图建立一个新的虚拟环境。

win10 下运行scrapy startproject tutorial 报错 “ImportError:DLL load failed”

在安装过程中退出了,可能 是网络原因造成的。再试了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总算能用了吧!