vcvarsall.bat needed for python to compile missing from visual studio 2015 ( v 14)

Python 3.xVisual C++Visual Studio-2015PipPython 2.x

Python 3.x Problem Overview


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 ( https://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat?rq=1 ). 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: https://stackoverflow.com/questions/19830942/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 ??

Python 3.x Solutions


Solution 1 - Python 3.x

Make sure C++ Common Tools are installed in Visual Studio.

Programs and Features -> VS 2015 -> Change

VS2015 setup

Solution 2 - Python 3.x

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 - Python 3.x

I downloaded the Microsoft Visual C++ build Tools Link Here and everything worked great.

Solution 4 - Python 3.x

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 

Solution 5 - Python 3.x

I just had the same problem (Windows 7, Python 3.4, pip 7.1)

pip install mysqlclient
(...)
error: Unable to find vcvarsall.bat

I followed these instructions: https://www.linkedin.com/pulse/resolving-python-error-unable-find-vcvarsallbat-bhanu-pratap-singh/

Then upgraded pip to 9.0.1 with

python -m pip install --upgrade pip

tried again:

pip install mysqlclient

and voilà:

Successfully installed mysqlclient-1.3.12

Solution 6 - Python 3.x

While installing any Python 2.7 module if you are facing the error:

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)

Windows OS Solution

The easiest solution would be to:

  • Browse to the URL http://aka.ms/vcpython27
  • Download Microsoft Visual C++ Compiler for Python 2.7
  • Snapshot:

vcpython27

  • Version : 9.0.0.30729

  • File Name : VCForPython27.msi

  • Date Published : 9/29/2014

  • File Size : 83.8 MB

  • Details:

  • >This package contains the compiler and set of system headers necessary for producing binary wheels for Python packages. A binary wheel of a Python package can then be installed on any Windows system without requiring access to a C compiler.

  • >The typical error message you will receive if you need this compiler package is Unable to find vcvarsall.bat

  • >This message appears because the Python package being installed contains the source code for a native extension module (.pyd), but does not have a pre-built copy of the module. The Python packages highlighted at pythonwheels.com have already been updated by their developers to include pre-built binaries, but many are still only available as source code.

  • >This compiler package is entirely unsupported and represents a snapshot of the last version that is fully compatible with Python 2.7. For the latest security and bug fixes, please use the latest version of Microsoft Visual Studio for any development work that does not directly interface with Python 2.7.

  • Systems Requirements:

  • Supported Operating System : Windows 7, Windows 8, Windows 8.1

  • Microsoft Visual C++ 2008 SP1 Redistributable Package (x86, x64) Windows 8 and later require the Microsoft .NET Framework 3.5. See here for installation instructions.

  • Disk Space Requirements : Installation requires 380 megabytes (MB) of hard disk space.

  • Python Packages setuptools 6.0 or later is required for Python to automatically detect this compiler package. wheel is recommended for producing pre-built binary packages.

  • Install Instructions:

  • Installing and Uninstalling The compiler package will default to installing just for the current user and does not require administrative privileges. To install for all users of a machine, execute msiexec /i ALLUSERS=1 from an elevated Command Prompt.

  • Using with Python distribution tools Python package developers should download and use this compiler to produce binary wheels for their Python packages to upload to PyPI. Installing the wheel package, updating to setuptools 6.0 or later, and adding setup.py bdist_wheel upload to your build process will produce the correct files (remember to do this for both 32-bit and 64-bit versions).

  • If a Python package you are installing does not have a wheel, you can install this compiler package on your own machine. Once the compiler is installed and you have updated to setuptools 6.0 or later, you can use pip install to build and install the Python package. If you are managing multiple machines and need to install the Python package on all of them, you should install the wheel package and use pip wheel to produce a wheel that can be installed on machines without requiring this package.

  • Install the package on your localhost.

  • Install the required Python 2.7 module successfully without any errors.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDorinView Question on Stackoverflow
Solution 1 - Python 3.xBohdanView Answer on Stackoverflow
Solution 2 - Python 3.xR21View Answer on Stackoverflow
Solution 3 - Python 3.xBhanuday BirlaView Answer on Stackoverflow
Solution 4 - Python 3.xPetr PeňásView Answer on Stackoverflow
Solution 5 - Python 3.xazathothView Answer on Stackoverflow
Solution 6 - Python 3.xundetected SeleniumView Answer on Stackoverflow