彻底解决安装Python扩展包时Unable to find vcvarsall.bat
来源:互联网 发布:淘宝皇冠转让 编辑:程序博客网 时间:2024/06/05 10:54
windows上如果没有安装 visual studio, 也就是俗称的vs, 在安装一些带有c或者c++代码的python模块的时候, 会报错
此时你可能会尝试:
1.下载二进制安装包
遇到提示说“Python version 2.7 required, which was not found in the registry.” 。错误如图1所示:
出现这个问题可能是因为你的OS是64bit的,但是安装的包却一直在32bit的注册表内寻找Python
StackOverfolow上好多高票答案貌似可以解决了,如:http://stackoverflow.com/questions/3652625/installing-setuptools-on-64-bit-windows,这里我就不在赘述了
2.下载源码自己编译
- 将下载的.zip解压。
- 打开命令行,进入根目录
- 输入:setup.py install
- 最后提示:error: Unable to find vcvarsall.bat
那怎么彻底解决 error: Unable to find vcvarsall.bat 呢?
大坑慎入:
不要按网上说的,安装MinGW,然后在“..python安装路径...\Lib\distutils”下新建一个文件distutils.cfg,在这文件里面指定编译器为mingw32
如: [build]compiler=mingw32
原因是什么,可以百度一下mingw是什么,毕竟不是GCC,又不如VC接windows的地气,编译出来的东西,安装上了也有不好使的时候。甚至我遇到MinGW还无法编译greenlet0.4.1,导致greenlet无法源码安装。MinGW经常command 'gcc' failed with exit status 1 或者error: unrecognized command line option '-mno-cygwin'。即使编译通过了,安装上了,你安装的Python标准库不是由mingw编译的,你的扩展包却是mingw编译的,谁也不敢保证完全兼容或者说质量跟得上,说不准一些莫名其妙的神经质错误。
解决方法:
一、去下载安装VS2010
(08版貌似也行,不过没必要用旧版,指不定哪个库又无法编译),给个地址(百度的云盘 国内应该速度可以)
http://pan.baidu.com/share/link?shareid=1609273194&uk=3255422755
然后注意这一步很重要:命令行下执行 SET VS90COMNTOOLS=%VS100COMNTOOLS%
如果你安装的是 2012 版 SET VS90COMNTOOLS=%VS110COMNTOOLS%
如果你安装的是 2013版 SET VS90COMNTOOLS=%VS120COMNTOOLS%
或者更暴力,直接配置系统环境变量 VS90COMNTOOLS指向 %VS你的版本COMNTOOLS%
你还可以更暴力,在“..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://stackoverflow.com/questions/6551724/how-do-i-point-easy-install-to-vcvarsall-bat
这个例子说明 VS2010不适合Python2.6
二、下载一个Microsoft Visual C++ Compiler for Python 2.7的补丁
三.安装VS后该重启的重启,clean一下之前安装Python扩展失败的残留文件,然后 直接下载源码,解压后python setup.py build发现都可以编译了。接下来就换成 python setup.py install安装吧。
- 彻底解决安装Python扩展包时Unable to find vcvarsall.bat
- 彻底解决安装Python扩展包时Unable to find vcvarsall.bat
- 彻底解决安装Python扩展包时Unable to find vcvarsall.bat
- python安装扩展”unable to find vcvarsall.bat“的解决办法
- python安装扩展”unable to find vcvarsall.bat“的解决办法
- 安装Python包出现 Unable to find vcvarsall.bat
- python 安装包error: Unable to find vcvarsall.bat
- Python安装第三包遇到Unable to find vcvarsall.bat
- python扩展包的安装error: Unable to find vcvarsall.bat
- 彻底解决 error: Unable to find vcvarsall.bat
- 彻底解决 error: Unable to find vcvarsall.bat
- 彻底解决 error: Unable to find vcvarsall.bat
- 彻底解决 error: Unable to find vcvarsall.bat
- python扩展问题”unable to find vcvarsall.bat“的解决
- Python扩展问题”unable to find vcvarsall.bat“的解决
- Unable to find vcvarsall.bat Python扩展编译失败解决办法
- Windows系统 安装Python扩展包时出现“Misrosoft Visual C++ 9.0 is required / Unable to find vcvarsall.bat”的解决办法
- windows下安装python的C扩展编译环境(解决“Unable to find vcvarsall.bat”)
- 160. Intersection of Two Linked Lists
- TOJ 2977.Eight
- tcp/ip概述和wireshark的简单使用
- Java模板引擎 FreeMarker
- Android for work总结(下)
- 彻底解决安装Python扩展包时Unable to find vcvarsall.bat
- 树莓派 Learning 001 装机 ---之 1 安装NOOBS系统
- Linux is not Matrix——MyCat实现读写分离
- HDU 5752 Sqrt Bo
- [SCU4439] Vertex Cover [2015 Sichuan Province Contest Final D]
- 绘图基础二
- 常用 web service
- 服务化拆分
- linux 网络编程之服务器多线程限制