有小伙伴在群里边反映说在使用Scrapy的时候,发现创建项目一切顺利,但是在执行Scrapy爬虫程序的时候却出现下列报错:“No module named win32api”,如下图所示,但是不知道怎么破,今天就这个问题讲解一下解决方案。
![db30c91532bf7c11bd3d3216b88fb5d7.png](https://i-blog.csdnimg.cn/blog_migrate/9472f7d3e854ab487e2b7a4c85ee1bf2.jpeg)
出现这个报错是因为在Windows下我们缺少一个包,叫pypiwin32,这个报错一般只是在Windows下出现。很多小伙伴看到“No module named win32api”,于是乎便想着直接输入安装命令“pip install win32api”,结果系统给出下图提示:
![8752b52255e1d5cbafd88e4658585df2.png](https://i-blog.csdnimg.cn/blog_migrate/85ac236e87fe6e2d04c83f802b8c7984.jpeg)
“Could not find aversion that satisfies the requirement win32api (from versions: ) No matchingdistribution found for win32api”。
![99be1f4837ce1fc509bd9390f3fce748.png](https://i-blog.csdnimg.cn/blog_migrate/25050f0b72939112bfe5cb2fd0015659.jpeg)
原来是没有找对安装包,正确的姿势是安装pypiwin32才是,输入安装命令“pip install pypiwin32”,结果如下图所示:
![0a87b153193ee7149cbe6694e4456eec.png](https://i-blog.csdnimg.cn/blog_migrate/29815f9b896b9e3387ae273b3ca64348.jpeg)
小伙伴们又傻眼了,What???
![b2766e541860e49d4a03fb210dd2beb0.png](https://i-blog.csdnimg.cn/blog_migrate/d9378c8a00f7df513b54084ac1bc9cb0.jpeg)
再尝试从豆瓣源上进行下载该库,结果如下图所示:
![cf5f9efabd1bf7bd0f4ab01c227de06f.png](https://i-blog.csdnimg.cn/blog_migrate/93d22ed1e60b185bc4a475b37ba242f2.jpeg)
还是报错,确实是好尴尬。
接下来就该求助Python包网站https://www.lfd.uci.edu/~gohlke/pythonlibs/,里边的Python包专门用于Windows下的安装的。在网页中找到pypiwin32安装包,然后选择本机Python对应版本和电脑系统位数的安装包,小编的电脑是64位的,而且Python版本是Python3.4,所以下载的包如下图红色框框所示。
![b9c7d540babfa72ae534b8ad2da1bd38.png](https://i-blog.csdnimg.cn/blog_migrate/67de863a215dc6178a00783f71810a7c.jpeg)
下载之后,将安装包放到site-packages文件夹下,如下图所示。
![2932858b3431e73fa6c4d4682013d151.png](https://i-blog.csdnimg.cn/blog_migrate/ffbf49672d29656618e3ac680e700364.jpeg)
之后执行安装命令“pip install pywin32-223.1-cp34-cp34m-win_amd64.whl”,如下图所示,显示“pywin32-223.1-cp34-cp34m-win_amd64.whlis not a supported wheel on this platform.”,无支持的平台。
![0923086f5b1b2bb181f21fa13540325a.png](https://i-blog.csdnimg.cn/blog_migrate/76bb3b46f1e2763f3f2744756c879bad.jpeg)
此时仍需要get一个小技巧,之前在Scrapy安装的问题总结一文中也有提及,这里再次借助这个方法进行实现,直接将.whl改为.zip,尔后进行解压即可,输入“pip list”进行查看。
![d869d34235225d1d1bc1b7f55bb4053a.png](https://i-blog.csdnimg.cn/blog_migrate/1e2a1668e245312334c8924432f16051.jpeg)
可以看到pywin32已经在里边了,并不是pypiwin32,怀着试一试的心态,再次执行爬虫命令,可以看到不再报这个错误了,竟然解决了这个问题。PS:因为爬虫程序的主题文件还没有任何的逻辑实现,所以返回的pipelines数据为空。
![5a86d1e029b4222c935e41cdae73a2ec.png](https://i-blog.csdnimg.cn/blog_migrate/1d2de99dcef6fb72f17e959e5e590de4.jpeg)
最后安利一个小技巧。最近有的小伙伴在群里问,如果不小心没有记住Scrapy爬虫项目的名字,又不想去Pycharm中进行查看爬虫主体文件,该肿么办?这里介绍一个小技巧,可以帮助你找到爬虫的名字。直接在命令行中输入“scrapy list”即可看到爬虫的名字,如下图所示。
![83df446105c5baaa78a55b343177d39c.png](https://i-blog.csdnimg.cn/blog_migrate/c7d8a2b83b7e18e184c41054c58d9a6b.jpeg)
到这里,关于“No module namedwin32api”的报错问题已经得到了解决,下次小伙伴们可以直接输入安装命令“pip install pywin32”即可,如果有报错的话,可以再尝试文中的解决问题的思路和方法。
![afa4403dd60cdcd907e81972f51c9210.png](https://i-blog.csdnimg.cn/blog_migrate/c71d1c3668e2e10d7d13f53828c91b0e.jpeg)
不过全文中的解决问题的思路和方法,小伙伴们日后都可以借鉴一下,希望对的大家的学习有帮助。