Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error: Unable to find vcvarsall.bat

I tried to install the Python package dulwich:

pip install dulwich 

But I get a cryptic error message:

error: Unable to find vcvarsall.bat 

The same happens if I try installing the package manually:

> python setup.py install running build_ext building 'dulwich._objects' extension error: Unable to find vcvarsall.bat 
like image 578
okada Avatar asked May 12 '10 10:05

okada


People also ask

Can not find Vcvarsall bat?

When you see “unable to find vcvarsall. bat”, it means you're installing a package that has an extension module, but only the source code. “vcvarsall. bat” is part of the compiler in Visual Studio that is necessary to compile the module.


2 Answers

Update: Comments point out that the instructions here may be dangerous. Consider using the Visual C++ 2008 Express edition or the purpose-built Microsoft Visual C++ Compiler for Python (details) and NOT using the original answer below. Original error message means the required version of Visual C++ is not installed.


For Windows installations:

While running setup.py for package installations, Python 2.7 searches for an installed Visual Studio 2008. You can trick Python to use a newer Visual Studio by setting the correct path in VS90COMNTOOLS environment variable before calling setup.py.

Execute the following command based on the version of Visual Studio installed:

  • Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%
  • Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%
  • Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%
  • Visual Studio 2015 (VS14): SET VS90COMNTOOLS=%VS140COMNTOOLS%

WARNING: As noted below, this answer is unlikely to work if you are trying to compile python modules.

See Building lxml for Python 2.7 on Windows for details.

like image 62
fmuecke Avatar answered Sep 30 '22 18:09

fmuecke


I found the solution. I had the exact same problem, and error, installing 'amara'. I had mingw32 installed, but distutils needed to be configured.

  1. I have Python 2.6 that was already installed.
  2. I installed mingw32 to C:\programs\mingw\
  3. Add mingw32's bin directory to your environment variable: append c:\programs\MinGW\bin; to the PATH
  4. Edit (create if not existing) distutils.cfg file located at C:\Python26\Lib\distutils\distutils.cfg to be:

    [build] compiler=mingw32 
  5. Now run easy_install.exe amara.

Make sure environment is set by opening a new cmd.exe.

like image 28
ninMonkey Avatar answered Sep 30 '22 19:09

ninMonkey