python3.4用pip安装lxml时出现“unabletofindvcvarsall.bat”?

我在网上搜了好多,说需要安装 vs2008,但是我安装了vs2008专业版,依然还是这个问题“unable to find vcvarsall.bat ”再然后,我又照网上说的下载安装mingw了,并且修改了环境变量等一系列东西,最后错误又变成了“typeerror: unorderable types: nonetype() >= str()”请问这个到底该怎么解决?回复内容:

刚从这个大坑里爬出来:

1. 安装wheel,命令行运行:

pip install wheel

建议直接装编译好的安装包:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
!!!!python35已不适用以下方案----------原答案-----------c:/python31/lib/distutils目录下,发现“unable to find vcvarsall.bat”这句话在msvc9compiler.py中问题出在构建python的版本和你计算机上安装的版本可能不一样。具体修改代码如下:msvc9compiler.py中修改msvccompiler函数:vc_env = query_vcvarsall(version, plat_spec)为:如果安装的是vs2014,则version为13.0;如果安装的是vs2013,则version为12.0;如果安装的是vs2012,则version为11.0;如果安装的是vs2010,则version为10.0;如果安装的是vs2008,则version为9.0。像我的安装的是vs2013,则vc_env = query_vcvarsall(12.0, plat_spec)在我的电脑上,我查过它查找的version为10.0,也就是vs2010,所以要人工干预下,而且修改此处对整个程序没有影响,除非你换了vs版本至于题主为啥2008版的没用,因为python3.4默认2010版,你也可以直接下2010的,这就不用改了
泻药,以下回答不保证是正确的。1 直接下载预编译好的二进制安装包。2 那个玩意是vc里的,我记得这里有个vc版本问题,这个文件名好像不一样,你进去安装包里,看看实际用的是哪个脚本,找不到可能要添加环境变量。提示:这个是可以配置成使用mingw的,也是安装脚本setup.py里配置的,如果你最后没搞定,可以尝试改成使用mingw。3 换linux 使用系统带的包管理器装,通常问题不大。
直接按 @cloak shining给的链接下二进制包就行。python在windows下通过pip安装带有c扩展的包时,如果是python 2.7,需要vs2008,如果是python 3.x,需要vs2010,版本错了都不行,更别提mingw。因为c运行时不兼容的原因。还有两个一劳永逸的解决方案:1. 换linux2. 用anaconda scientific python distribution

产生原因:

python3.4用的是msvs2010编译的,所以python3.4默认只能认出msvs2010。

python2.7用的是msvs2008编译的,所以python2.7默认只能认出msvs2008.

方法一:安装mingw(不推荐)

下载mingw环境,添加环境变量

或者使用

python setup.py build –compiler=mingw32

感谢@许仙的回答,我这里补充一下,安装whl文件需要使用cmd进入python/scripts/。然后运行 pip3.4 install xxxxx.whl(针对3.4版本)
今天花了一天的时间解决这个问题!基本把网上说的方法都试了,什么注册表,改keytool,装了vs2010等等,最后是看python源代码解决的。我的python版本是python 3.5该问题的产生是在windows环境中,python 的 setup需要调用一个vcvarsall.bat的文件,该文件需要安装c++编程环境才会有。网上的方法有两个:一、安装mingw;二、安装visual studio 。我用的是第二种方法。步骤一:

在你的python程序所在文件夹中找到:“_msvccompiler.py”文件,例如我的电脑中的路劲是:

d:\program files\anaconda3\lib\distutils\_msvccompiler.py

找到后用编辑器打开,找到“_find_vcvarsall”函数声明中类似“if version >= 14 and version > best_version:”注意这里的“14”,如果这里是14说明vs版本要在14以上才可以。所以根据这句,我们要安装最新的visual studio2015。(相对的如果是9就是9以上即可这时vs10什么都是可以的)

步骤二:

现在visual studio 2015有社区版,可以免费使用,这个版本就够了。为了方便大家,我放在云盘。你也可以去官网下载。

http://pan.baidu.com/s/1esuewlg

下载完毕后进行安装:

注意一定要勾选c++环境,和xxxfor python,这两个。web development应该是没有影响的,但是由于这是软件默认勾选的,所以我也装了。

这一步,出现了一直停留在“configuring your system”的问题,然后在网上找到了如下解决方案:(visual studio express 2013 for windows with update 2 installation taking too much time in “configuring your system”)

意思就是把vs的进程都关了。我关掉vs2015后分分钟就好了


微软社区的开放者对这个问题给出了答复。一句话:对于python,3.4 安装windows sdk for windows 7 and .net 4.0(或者 visual studio 2010) 。对其他版本,见表:引自 https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/
额, 如果有人还看到这里,那你试一下这样:按照 深海鱼 的方法下载到whl文件,然后重命名为zip,解压后放到python安装目录下的lib中。

Posted in 未分类

发表评论