我试图在Windows 10下使用Visual Studio 2015终极安装在python 3.5中安装numpy。
简短版本:vs14文件夹vcvarsall.bat
文件夹中缺少文件C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
。为什么?
长版:运行pip install numpy
给了我这个错误error: Unable to find vcvarsall.bat
研究这个错误让我得到了几个stackoverflow答案,帮助我弄清楚python需要c ++编译器来编译一些包。它需要使用用于编译python 3.5(error: Unable to find vcvarsall.bat)的相同版本的编译器来完成它。我的python是使用[MSC v.1900 64位(AMD64)]编译的 - 这是vs 14(visual studio 2015)
继续我的研究,我从以下方面学到:pip install gives error: Unable to find vcvarsall.bat来自get_build_version()
的$python_install_prefix/Lib/distutils/msvc9compiler.py
返回vs的版本,用于找到vcvarsall.bat
的路径对我来说这个方法返回14.所以一切都正确。
现在,当我查看文件夹C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
时,文件vcvarsall.bat丢失了。
但当我查看文件夹C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
时,有一个vcvarsall.bat。
为什么vs 14.0中缺少vcvarsall.bat?
我在尝试安装numpy之前遇到过这个问题。虽然我无法修复'vcvarsall.bat'问题,但我发现我可以从这里下载预编译的库:http://www.lfd.uci.edu/~gohlke/pythonlibs/下载所需的库,导航到下载的.whl文件所在的位置并打开命令提示符窗口。运行'pip install [whl file name]'这将为您安装库,没有编译问题。
我下载了Microsoft Visual C ++构建工具Link Here,一切都很好。
当我尝试使用python 2.7(使用VS 2015编译)构建ujson包时遇到了这个问题。
有这条线:
majorVersion = int(s[:-2]) - 6
它将majorVersion设置为13,但VS 2015的正确版本是14.所以你需要添加两行,例如:
if majorVersion == 13:
majorVersion = 14
我遇到了同样的问题(Windows 7,Python 3.4,pip 7.1)
pip install mysqlclient
(...)
error: Unable to find vcvarsall.bat
我遵循了这些指示:https://www.linkedin.com/pulse/resolving-python-error-unable-find-vcvarsallbat-bhanu-pratap-singh/
然后将pip升级到9.0.1
python -m pip install --upgrade pip
再次尝试:
pip install mysqlclient
这是:
Successfully installed mysqlclient-1.3.12
如果您遇到错误,请安装任何Python 2.7模块:
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)
最简单的解决方案是:
http://aka.ms/vcpython27