错误1:在执行 scrapy crawl spider名命令的时候 出现了ImportError:DLL load failed: %1不是有效的win32程序错误 这是因为pywin32的版本安装错误。

因为我电脑是64位的 。最开始安装了pywin32-221.win-amd64-py3.6这个版本 ,还以为amd64就是与自己电脑的位数想对应,后来发现,这个要安装amd32版本就解决了问题。安装完成之后可以用import win32com来测试是否安装成功。若不报错就OK了。

错误2:

搭建第一个scrapy项目的常见问题-LMLPHP

这是未安装pywin32造成。在这里可能有小伙伴会问之前装过pywin32。需要说明的是,pywin32在每一个虚拟环境都是独立存在的,所以你可能在其他虚拟环境装过pywin32,不过在新的虚拟环境是不存在的。pywin32的安装方法如下:

pywin32是一个exe文件,而且在运行的时候路径已经默认了 还不能修改。所以安装完成之后事实上我们的virtualenv中还是没有pywin32。它只存在于python的安装目录下。拿我自己的电脑举例:

只存在于 C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages 下能发现win32com

所以我们想要在虚拟环境下也有pywin32包的话,需要将C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages下的 pywin32.pth文件拷贝到 你虚拟环境的 site-packages下 。我的电脑是C:\Users\Administrator\Envs\scrapy_spider\Lib\site-packages ;拷贝了之后 ,你需要将虚拟环境目录下的这个pth文件的内容进行修改:

源文件内容:

# .pth file for the PyWin32 extensions
win32
win32\lib
Pythonwin

修改之后的内容:

# .pth file for the PyWin32 extensions
C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\win32
C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\win32\lib
C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\pythonwin    //这里的目录也是python的安装目录下的文件。
 
完成之后你的虚拟环境也能够正常使用pywin32这个包。
05-27 13:28