首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

修改Python源码解决Unable to find vcvarsall.bat问题

想把Python2.7.9安装在Windows 10上,要经历过无数的坑,这应该是传统的大坑之一。网上有很多解决方法。我这里记录一下和网上不太一样的方法:通过通过安装Microsoft Visual C++ Compiler for Python 2.7 ,然后修改Python代码解决问题。

先总结网上说的三种此问题的解决方法:

1. 安装 mingw

2. 安装vs2010然后设置环境变量

3. 有人Python3下安装wheel后成功解决:见知乎https://www.zhihu.com/question/26857761,不过我是Python2,很不幸还是不行。

倒腾了一番后,解决方法如下:

一、 先找Root Reason

首先肯定了系统确实没有vcvarsall.bat!

然后调查发现Python的Lib\distutils\msvc9compiler.py中的find_vcvarsall()函数中,最终因为找不到路径,返回该错误码。

其中vcvarsall由productdir而来,productdir由toolsdir和toolskey生成,toolskey是环境变量,经调试,我这里toolskey为VS90COMNTOOLS

系统里根本没有VS90COMNTOOLS环境变量。

二、 不想因为装个Python就安装VS 2008或者2010。

经过搜索,可以通过安装Microsoft Visual C++ Compiler for Python 2.7 解决问题,安装之,系统中找了vcvarsall.bat,有进步,说明方向是正确的。安装后设置了VS90COMNTOOLS变量,指向Compiler 的路径。

这里注意安装环境变量后要重启MS Dos

三、 问题仍没最终解决,调试结果为productdir路径不对,后来想想,原来productdir的路径都是依照VS 2008的逻辑设置的。没有考虑到我这种懒得安装VS的情形。怎么办,修改代码,将productdir指向正确路径。完整的修改后find_vcvarsall()函数,只改了一行,问题解决!

四、在想是不是有空把这个问题issue发给Python,促使其完善代码哈。

本文转自zyypost,作者也是我,内容格式有微调。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180410G198AG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券