python Unable to find vcvarsall.bat

完美解决 Unable to find vcvarsall.bat 问题。

以 python2.7为例子。

下载  VS2010.然后安装。或者 大于 VS2008 的其他版本。具体情况,试所需编译的 py版本。比如 py2.3的用的是 vc6++。

VS2010安装好以后,网上大部分说可以设置环境变量 VS90COMNTOOLS = %VS100COMNTOOLS%,或者将VS90COMNTOOLS 设置成,VS2010安装目录下面的 VS路径,比如  

D:\Program Files\Microsoft Visual Studio 10.0\VC;

在实践的过程照此实验多次,发现大部分是坑。

主要原因有两个 ,第一个  %VS100COMNTOOLS%  这个环境变量所指的方向就不对 ,其指向的地址为 D:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools。

                                 第二个   在环境变量中设置了     VS90COMNTOOLS  = “D:\Program Files\Microsoft Visual Studio 10.0\VC” 也无效。

最后还是采用暴力破解:

        原理:安装程序或者用Cython来编译.py 文件的时候,会用到 ,python 库中的  D:\Python27\Lib\distutils 模块。来对.py扩展进行编译程 .dll 

         在此模块下 找到     msvc9compiler.py      文件 ,然后 打开该文件 搜索     “Unable to find vcvarsall.bat”     ,此时会定位到两个地方。

         第一个是    259 行的   log.debug("Unable to find vcvarsall.bat ")               看上面有一个  if os.path.isfile(vcvarsall):  判断是否为文件。 

         还有一处是  269  raise DistutilsPlatformError("Unable to find vcvarsall.bat")    //此处就是你在 cmd 黑色的屏幕中看到的  那句 Unable to find vcvarsall.bat。

         因此可以定位到 问题就处在这里。 看前面判断的是  if vcvarsall is None: 说明 之前那个判断  if os.path.isfile(vcvarsall)  是  false, 因此可以不用管前面 ,直接在 268 处 插入 

         vcvarsall = r'D:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat'   //此文件的全路径 根据安装的 VS路径来确定。

至此ok,在安装或者编译 程序。就ok了。

刚开始的按照网上的 暴力破解 243 行的 toolskey ,将其设置为  D:\Program Files\Microsoft Visual Studio 10.0\VC,测试很久无效。其实主要原因还是出在 isfile的判断上面。是否是因为 路径名中 间 有空格,导致 isfile判断出错。尚未测试。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值