在执行kitsune的example时,我需要先运行setup.py文件,将项目中的Python代码翻译为C代码。在编译setup代码时python setup.py build_ext --inplace
,出现了error: Unable to find vcvarsall.bat
报错。下面介绍相关原理以及具体的解决办法。
首先需要介绍Cython的用法
解决方法
- 我安装的是vs2017,所以以vs2017为列
- 找到你使用的python中的对应文件,我用的是anaconda中的python,路径为:
D:\Anaconda3\Lib\distutils\_msvccompiler.py
- 打开这个py文件,做如下修改:
best_version = 14
best_dir = "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build"
修改这两行就可以了,best_dir对应的是vs2017中的vcvarsall.bat文件的位置,不同vs版本的vcvarsall.bat位置不同,需要自己查找修改。
其他的解决方案:参考博客
- 使用命令行编译Python代码:
python setup.py build_ext --inplace