编译Python的C语言扩展的动态链接库时,输入如下命令。c:\path\to\python_c_extention_src>python setup.py build_ext –inplace
遇到错误 Unable to find vcvarsall.bat
这是因为,在默认情况下,Python 2.7使用Visual Studio 2008作为编译环境,而在实际情况下,我们可能使用了更高版本的Visual Studio环境。我们可以修改Python2.7的设置,来使用对应的Visual Studio开发环境。我们也可以修改环境变量将新版本的变量赋各位老版本的环境变量,具体如下:
如果正在使用Visual Studio 2010,那么在编译C语言扩展库之前,先执行
SET VS90COMNTOOLS=%VS100COMNTOOLS%
如果正在使用Visual Studio 2012 (Visual Studio Version 11),那么执行
SET VS90COMNTOOLS=%VS110COMNTOOLS%
如果正在使用Visual Studio 2013 (Visual Studio Version 12),那么执行
SET VS90COMNTOOLS=%VS120COMNTOOLS%
上述方法参考了网站内容:http://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat
经过分析我们可以知道,这里遇到的错误是由Visual Studio版本不统一造成的,还有一个解决方案,就是使用MinGW来编译Python的C语言扩展,具体在Python编译的命令最后添加选项–compiler=mingw32,完整形式如下:
c:\path\to\python_c_extention_src>python setup.py build_ext –inplace –compiler=mingw32
或者c:\path\to\python_c_extention_src>python setup.py build_ext –inplace -c mingw32
转载请注明:王杭州的个人网页 » 编译Python的C语言扩展的错误:Unable to find vcvarsall.bat