Python3.7 scrapy遇到async和ModuleNotFoundError: No module named 'win32api'报错的解决方案

Python3.7 scrapy遇到async和ModuleNotFoundError: No module named 'win32api'报错的解决方案

  • 一、运行环境
  • 二、解决Python3.7 scrapy的async报错
  • 三、Python3.7 scrapy遇到ModuleNotFoundError: No module named 'win32api'报错
  • 四、参考资料

一、运行环境

Windows 命令行下
Python 3.7.0
Scrapy 1.5.0
在测试嵩天老师的第一个scrapy实战,执行scrapy crawl demo命令时,接连出现的两个bug。

二、解决Python3.7 scrapy的async报错

错误提示如下:
Python3.7 scrapy遇到async和ModuleNotFoundError: No module named 'win32api'报错的解决方案_第1张图片
仔细看,发现错误提示是async出问题了。原因是python3.7中把async作为了关键字,所以无法再作为变量名,但是scrapy1.5中write函数把它作为了变量,所以报错。
**解决方案:**将提示目录下的manhole.py文件里面的async全部替换为async1即可。
我这个就是打开“d:\myprogram\python3.7\lib\site-packages\twisted\conch\”路径,找到manhole.py文件,打开用文本编辑器(不要直接双击,我用的python自带的IDLE打开的)manhole.py文件,按Ctrl+H将里面的async全部替换为async1.如下:
Python3.7 scrapy遇到async和ModuleNotFoundError: No module named 'win32api'报错的解决方案_第2张图片

三、Python3.7 scrapy遇到ModuleNotFoundError: No module named 'win32api’报错

解决了async报错后,继续运行,又发生“ModuleNotFoundError: No module named 'win32api”错误。
看提示信息,提示我们这个win32api模块没有安装。
解决方案:安装win32api模块即可
下载地址
下载好之后,进入下载文件的路径,在路径栏输入cmd,自动切换到相应的命令行模式。

我的是下载在桌面,所以路径是桌面。
Python3.7 scrapy遇到async和ModuleNotFoundError: No module named 'win32api'报错的解决方案_第3张图片
在命令行下输入以下安装指令:
pip install pypiwin32-223-py3-none-any.whl
即可安装成功。
在这里插入图片描述
再执行scrapy crawl demo命令,成功。

四、参考资料

参考一:Python3.7 scrapy遇到async报错
参考二:ModuleNotFoundError: No module named ‘win32api’

你可能感兴趣的:(爬虫)