vcvarsall.bat needed for python to compile missing from visual studio 2015 ( v 14)
I am trying to install numpy in python 3.5 under windows 10 with visual studio 2015 ultimate installed.
Short version: file vcvarsall.bat
is missing from vs14 folder C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
folder. Why?
Long version:
Running pip install numpy
gives me this error error: Unable to find vcvarsall.bat
researching this error got me to several stackoverflow answers that helped me figure out that python needs c++ compiler to compile some of the packages. And it needs the to do it using the same version of compiler that was used to compile python 3.5 ( error: Unable to find vcvarsall.bat ). My python is compiled using [MSC v.1900 64 bit (AMD64)] - which is vs 14 ( visual studio 2015 )
Moving further with my research i learned out from:
pip install gives error: Unable to find vcvarsall.bat that
get_build_version()
from $python_install_prefix/Lib/distutils/msvc9compiler.py
returns the version of vs that shoud be used to find the path of vcvarsall.bat
For me this method returns 14. So everything correct.
Now when I look into the folder C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
there file vcvarsall.bat is missing.
But when I look into the folder C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC
there is a vcvarsall.bat.
Why is vcvarsall.bat missing from vs 14.0 ??
Solution 1:
Make sure C++ Common Tools are installed in Visual Studio.
Programs and Features -> VS 2015 -> Change
Solution 2:
I've come across this problem before when trying to install numpy. Although I was unable to fix the 'vcvarsall.bat' problem, I found that i could download pre compiled libraries from here: http://www.lfd.uci.edu/~gohlke/pythonlibs/ Download the libraries you want, navigate to wherever the downloaded .whl files are and open a command prompt window. run 'pip install [whl file name]' This will install the library for you with no compile issue.
Solution 3:
I downloaded the Microsoft Visual C++ build Tools Link Here and everything worked great.
Solution 4:
I met this problem when I was trying to build ujson package with python 2.7 (compiled with VS 2015).
- vcvarsall.bat: try to copy vsvars32.bat (from the same directory - "c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools") to vcvarsall.bat. It's all you need for build
- another problem is detecting VS version in function get_build_version() (distutils/msvc9compiler.py). You need to change this function to return right version of VS.
There is this line:
majorVersion = int(s[:-2]) - 6
it sets majorVersion to 13, but the correct version for VS 2015 is 14. So you need add two line, for example:
if majorVersion == 13:
majorVersion = 14