关于python setup build编译出现找不到 vcvarsall.bat(error: Unable to find vcvarsall.bat)

本文详细介绍了如何通过设置环境变量来欺骗Python 2.7使用较新版本的Visual Studio进行安装,包括不同版本Visual Studio的对应设置命令。还提供了更深入的解决方案,直接修改Python安装路径下的msvc9compiler.py文件,以适应不同版本的Visual Studio。
摘要由CSDN通过智能技术生成

For Windows installations:

While running setup.py for package installations, Python 2.7 searches for an installed Visual Studio 2008. You can trick Python to use a newer Visual Studio by setting the correct path in VS90COMNTOOLSenvironment variable before calling setup.py.

Execute the following command based on the version of Visual Studio installed:

  • Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%
  • Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%
  • Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%
根据stackoverflow上的回答,因为python2.7需要搜索vs2008的环境变量,所以需要欺骗python2.7,让这个环境变量设置其他版本的vs的路径即可。


还可以更暴力,在“..python安装路径...\Lib\distutils目录下有个msvc9compiler.py找到243行  
toolskey = "VS%0.f0COMNTOOLS" % version   直接改为 toolskey = "VS你的版本COMNTOOLS"(这个就是为什么要配 ”VS90COMNTOOLS“ 的原因,因为人家文件名都告诉你了是  Microsoft vc 9的compiler,   代码都写死了要vc9的comntools,就要找这个玩意儿,找不到不干活)

这么做的理由是Python2。7 扩展包是可以用08版或者更高的VS编译的,其setup.py(安装脚本)都是去windows系统寻找08版的VS,所以设置VS90的path

   如果Python版本小于2.7,强烈建议使用 VS08版,用2010或者更高可能部分扩展不好使。

黑字参考自:http://blog.csdn.net/secretx/article/details/17472107


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值