python27(32位)安装模块报错“error: Unable to find vcvarsall.bat”

1)首先,下载一个Microsoft Visual C++ Compiler for Python 2.7的补丁,下载地址在这里:

http://www.microsoft.com/en-us/download/details.aspx?id=44266

2) 然后下载安装VS2008(对应VER9.0),如果电脑上安装的是VS2010(对应VER10.0),

可以在VS命令行下执行:SET VS90COMNTOOLS=%VS100COMNTOOLS%

如果你安装的是 2012 版(对应VER11.0), SET VS90COMNTOOLS=%VS110COMNTOOLS%

如果你安装的是 2013版(对应VER12.0), SET VS90COMNTOOLS=%VS120COMNTOOLS%

或用以下方法也一样可以解决:

3) “unable to find vcvarsall.bat”这句话出在msvc9compiler.py中

再研究这个文件发现问题所在了:

它是在注册表中寻找到vs的目录,再去在vs目录下找vcvarsall.bat。

但是问题就出在python32里面默认是vc9.0也就是vs2008所以它在注册表里面找不到键值返回None

productdir = Reg.get_value(r"%s/Setup/VC" % vsbase,

"productdir")

vsbase值为:Software/Microsoft/VisualStudio/9.0

具体修改代码如下:

msvc9compiler.py中

def find_vcvarsall(version) 用于查找vcvarsall.bat version就是版本号,实际上是9.0

vc_env = query_vcvarsall(VERSION, plat_spec)

VERSION = get_build_version() 因为python32自己是由vc9.0构建的所以VERSION是9.0

修改MSVCCompiler函数:

vc_env = query_vcvarsall(VERSION, plat_spec)

为:

vc_env = query_vcvarsall(12.0, plat_spec)

不过还有这句话:

if VERSION < 8.0:

raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION)

看来,python3.2中的distutils只支持vc8.0以上,即vs2005以上的编译器。

4)之后安装还是报错:“ error: command ‘mt.exe‘ failed with exit status 31”

编辑Python27\Lib\distutils\msvc9compiler.py,查找ld_args.append(‘/MANIFESTFILE:‘ + temp_manifest)一行,在其后添加一行,内容为ld_args.append(‘/MANIFEST‘)

5)之后安装就成功了!

时间: 2024-11-12 23:49:17

python27(32位)安装模块报错“error: Unable to find vcvarsall.bat”的相关文章

在windows下安装lxml 报错error: Unable to find vcvarsall.bat

刚开始安装 ,我是使用命令pip install lxml直接进行安装,不过出错了 error: Unable to find vcvarsall.bat 解决方案: 1.首先安装wheel,pip install wheel 2.在这里下载对应的.whl文件, http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 3.进入.whl所在的文件夹,执行命令即可完成安装:pip install 带后缀的完整文件名 我下载的是:lxml-4.2.1-cp34-

python3.5 安装报错error: Unable to find vcvarsall.bat

报这个错误的原因: 百度了一下,大致的意思是,python的Setup需要调用一个vcvarsall.bat的文件,而文件需要安装c++编程环境才会有,如下图所示,所以要安装一个vs2014以上的版本 因为安装vs是为了获取一个c++的环境里面的一个文件,所以安装vs时有必要勾选上如图所示: 安装完成之后我们再次安装scrapy pip install scrapy 引用没有报错,就成功了,开始爬虫之旅了,嘿嘿

windows 下 python 在安装模块的时候出现”unable to find vcvarsall.bat“如何解决?

最近打算用python,写一个链接linux,执行命令并获取的数据的小工具. 在安装SSH模块时,出现错误了,“unable to find vcvarsall.bat”,在网上搜索到了一个解决方案,参考地址:http://www.crifan.com/python_mmseg_error_unable_to_find_vcvarsall_bat/ Python 2.7 会搜索 Visual Studio 2008.如果你电脑上没有这个版本的话,比如只有:1.Visual Studio 2010

安装python模块报错 error: command &#39;gcc&#39; failed with exit status 1

最近在安装paramiko模块的时候,总是报错:error: command 'gcc' failed with exit status 1,一开始比较挠头.找了蛮多资料,说的大多都是说缺少Python-devel 包,然而并不是! 最后蛮费劲的找到了一遍短小但就是正确的博文:http://blog.csdn.net/fenglifeng1987/article/details/38057193 —————————————————————— 解决方法: 安装:yum install gcc li

安装MySQL-python报错error: command &#39;gcc&#39; failed with exit status 1

[[email protected] MySQL-python-1.2.3]# python setup.py install function) .... _mysql.c:133: error: 'ER_SYNTAX_ERROR' undeclared (first use in this function) _mysql.c:380: error: '_mysql_ConnectionObject' has no member named 'connection' _mysql.c:382

安装nghttp2 报错error: Libtool library used but &#39;LIBTOOL&#39; is undefined

nghttp2 报错error: Libtool library used but 'LIBTOOL' is undefined 如果重新安装libtool和autoconf升级到2.69后,还是报错, 则进行下面的操作: 1,查看aclocal的路径 aclocal --print-ac-dir 显示/usr/local/share/libtool/m4 ls看看里面没有m4文件. 则copy /usr/share/libtool/m4里面的m4文件到此目录下. 2,cd到nghtt2目录 执

mac 安装mysql 报错“ERROR 2002 (HY000): Can not connect to local MySQL server through socket &#39;/tmp/mysql.sock&#39; (2)” 解决办法

首先安装 homebrew 再 brew install mysql 之后连接 mysql 无论是登录还是修改初始密码都会报如下的错误 ERROR 2002 (HY000): Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2) 运行如下解决:参考 http://www.thinksaas.cn/group/topic/347978/ unset TMPDIR mysql_install_db --v

python安装locustio报错error: invalid command &#39;bdist_wheel&#39;的解决方法

locust--scalable user load testing tool writen in Python(是用python写的.规模化.可扩展的测试性能的工具) 安装locustio需要的环境条件是:Python2.6+,但是不支持Python3. 今天在cmd里运行pip install locustio,报错提示:error: invalid command 'bdist_wheel'. 原因:pip和setuptools的版本较低. 解决方案:升级pip和setuptools. 一

Mac brew 安装mysql 报错 ERROR 2002 (HY000): Can&#39;t connect to local MySQL server through socket

安装mysql 最新版 56 brew install mysql 启动报错 ben:~ soul$ which mysql /usr/local/bin/mysql ben:~ soul$ mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 解决办法 运行 ben:~ soul$ mysql.server start Starting MySQL .