Python3.4 用 pip 安装lxml时出现 “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. 换linux
2. 用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中。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
上一篇: python--猜数字游戏
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论