错误1:在执行 scrapy crawl spider名命令的时候 出现了ImportError:DLL load failed: %1不是有效的win32程序错误 这是因为pywin32的版本安装错误。
因为我电脑是64位的 。最开始安装了pywin32-221.win-amd64-py3.6这个版本 ,还以为amd64就是与自己电脑的位数想对应,后来发现,这个要安装amd32版本就解决了问题。安装完成之后可以用import win32com来测试是否安装成功。若不报错就OK了。
错误2:
这是未安装pywin32造成。在这里可能有小伙伴会问之前装过pywin32。需要说明的是,pywin32在每一个虚拟环境都是独立存在的,所以你可能在其他虚拟环境装过pywin32,不过在新的虚拟环境是不存在的。pywin32的安装方法如下:
pywin32是一个exe文件,而且在运行的时候路径已经默认了 还不能修改。所以安装完成之后事实上我们的virtualenv中还是没有pywin32。它只存在于python的安装目录下。拿我自己的电脑举例:
只存在于 C:UsersAdministratorAppDataLocalProgramsPythonPython36-32Libsite-packages 下能发现win32com
所以我们想要在虚拟环境下也有pywin32包的话,需要将C:UsersAdministratorAppDataLocalProgramsPythonPython36-32Libsite-packages下的 pywin32.pth文件拷贝到 你虚拟环境的 site-packages下 。我的电脑是C:UsersAdministratorEnvsscrapy_spiderLibsite-packages ;拷贝了之后 ,你需要将虚拟环境目录下的这个pth文件的内容进行修改:
源文件内容:
# .pth file for the PyWin32 extensions
win32
win32lib
Pythonwin
修改之后的内容:
C:UsersAdministratorAppDataLocalProgramsPythonPython36-32Libsite-packageswin32lib
C:UsersAdministratorAppDataLocalProgramsPythonPython36-32Libsite-packagespythonwin //这里的目录也是python的安装目录下的文件。