"error: Unable to find vcvarsall.bat" when compiling Cython code "error: Unable to find vcvarsall.bat" when compiling Cython code windows windows

"error: Unable to find vcvarsall.bat" when compiling Cython code


I spent hours on this, and the information was not easily findable in error: Unable to find vcvarsall.bat, that's why I post it here with the "answer your own question" feature:

  • Step 1: Install Microsoft Visual C++ Compiler for Python 2.7

  • Remark: You don't need to modify msvc9compiler.py as often suggested in many forum posts

  • Step 2: Just add import setuptools that will help Python and "Microsoft Visual C++ Compiler for Python 2.7" work together.

    import setuptools  # importantfrom distutils.core import setupfrom Cython.Build import cythonizesetup(ext_modules=cythonize("module1.pyx", build_dir="build"),                                           script_args=['build'],                                            options={'build':{'build_lib':'.'}})

    Note: the script_args parameter allows to run this setup.py with just python setup.py (i.e. CTRL+B in your favorite editor like Sublime Text) instead of having to pass command-line arguments like this: python setup.py build.

It works!


Python >= 3.5

I wanted to comment on @Basj (https://stackoverflow.com/a/53172602/6596203) answer but I couldn't so I apologize. I just want to add to @Basj answer for people using Python >= 3.5, instead of Microsoft Visual C++ Compiler for Python 2.7, you can install just the C++ in this installer Build Tool for Visual Studio 2019 or you can simply install that with Chocolatey.