产生原因:
python3.4用的是msvs2010编译的,所以python3.4默认只能认出msvs2010。
python2.7用的是msvs2008编译的,所以python2.7默认只能认出msvs2008.
方法一:安装mingw(不推荐)
下载mingw环境,添加环境变量
或者使用
python setup.py build –compiler=mingw32
方法二:安装对应版本的msvs
python2安装msvs2008,python3安装msvs2010。
方法三:设置变量
python2 在安装扩展前执行
SET VS90COMNTOOLS = [vcvarsall.bat所在的目录]
或者
SET VS90COMNTOOLS=%VS120COMNTOOLS%
在湖闻樟注:VS120COMNTOOLS改成你安装的msvs版本对应的
python3在安装扩展前执行
SET VS100COMNTOOLS = [vcvarsall.bat所在的目录]
或者
SET VS100COMNTOOLS=%VS120COMNTOOLS%
在湖闻樟注:VS120COMNTOOLS改成你安装的msvs版本对应的
方法四:修改安装脚本
打开
[python3安装目录]Lib/distutils/msvc9compiler.py
修改MSVCCompiler函数:
vc_env = query_vcvarsall(VERSION, plat_spec)
为:
vc_env = query_vcvarsall(12.0, plat_spec)
在湖闻樟注:12.0改成你安装的msvs对应的版本号
补充:
msvs2005版本号为8.0对应环境变量VS80COMNTOOLS
msvs2008版本号为9.0对应环境变量VS90COMNTOOLS
msvs2010版本号为10.0对应环境变量VS100COMNTOOLS
msvs2012版本号为11.0对应环境变量VS110COMNTOOLS
msvs2013版本号为12.0对应环境变量VS120COMNTOOLS
----------------------------------------------------------------------------------------------------------------------python3.5升级了distutils,默认使用_msvccompiler.py ,变动有些大,上面说的修改msvc9compiler.py的办法没有效果,另外比较推荐使用编译好的二进制包来安装,毕竟省事嘛。