您的位置:首页 > 编程语言 > Python开发

在winows下安装相关python扩展包问题

2012-05-25 15:29 316 查看
在运行python setup.py install时,报错信息如下:

unable to find vcvarsall.bat

安装了mingw后,还是不行,报错信息如下图:



通过一个网友的对此问题的进行更深入的了解,特转贴过来:

经过对C:/Python32/Lib/distutils目录下.py文件的仔细翻阅,发现“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(8.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以上的编译器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: