Python安装Scrapy的种种

这几天没什么事,决定把自己抓代理的小工具用scrapy改写。
然而安装的时候却出现以下问题,反复失败:

Unable to find vcvarsall.bat

经过一番查找,找到了这个文件:

\Lib\distutils\_msvccompiler.py

它里边长这样:

def _find_vcvarsall(plat_spec):
    try:
        key = winreg.OpenKeyEx(
            winreg.HKEY_LOCAL_MACHINE,
            r"Software\Microsoft\VisualStudio\SxS\VC7",
            access=winreg.KEY_READ | winreg.KEY_WOW64_32KEY
        )
    except OSError:
        log.debug("Visual C++ is not registered")
        return None, None
...

根据代码理解,这是到注册表里找值去了。

在注册表里按这个路径点下去,长这样:


Python安装Scrapy的种种_第1张图片
Paste_Image.png

SxS下边没有VC7这个目录。

但是去调试这个_msvccompiler.py文件,这段代码却能读出一些值来。

Python安装Scrapy的种种_第2张图片
Paste_Image.png

再按这个值去注册表里检索,找到这些值的路径,原来是这样:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7
Python安装Scrapy的种种_第3张图片
Paste_Image.png

Wow6432Node: win64系统中,32位程序的注册表值会被写到这里。

根据msvccompiler.py的代码,名字>=14的值会被当作vcvarsall.bat所在的目录,于是跑到C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC下去一看,VS2015什么时候被卸掉了[汗]。

公司的电脑不想再折腾了,回家再搞吧。

你可能感兴趣的:(Python安装Scrapy的种种)