error: no se puede encontrar vcvarsall.bat

Intenté instalar el paquete de Python dulwich :

pip install dulwich 

Pero me sale un mensaje de error críptico:

 error: Unable to find vcvarsall.bat 

Lo mismo sucede si bash instalar el paquete manualmente:

 > python setup.py install running build_ext building 'dulwich._objects' extension error: Unable to find vcvarsall.bat 

Actualización : los comentarios señalan que las instrucciones aquí pueden ser peligrosas. Considere usar la edición de Visual C ++ 2008 Express o el Comstackdor de Microsoft Visual C ++ para Python ( detalles ) especialmente diseñado y NO usar la respuesta original a continuación. El mensaje de error original significa que la versión requerida de Visual C ++ no está instalada.


Para instalaciones de Windows:

Mientras ejecuta setup.py para las instalaciones de paquetes, Python 2.7 busca un Visual Studio 2008. Puede engañar a Python para que use un Visual Studio más nuevo configurando la ruta correcta en la variable de entorno VS90COMNTOOLS antes de llamar a setup.py .

Ejecute el siguiente comando según la versión de Visual Studio instalada:

  • 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%

ADVERTENCIA: como se indica a continuación, es poco probable que esta respuesta funcione si está intentando comstackr módulos de Python.

Consulte Creación de lxml para Python 2.7 en Windows para obtener detalles.

Encontré la solución. Tuve exactamente el mismo problema y error al instalar ‘amara’. Tenía instalado mingw32, pero era necesario configurar los distutils.

  1. Tengo Python 2.6 que ya estaba instalado.
  2. Instalé mingw32 en C:\programs\mingw\
  3. Agregue el directorio bin de mingw32 a su variable de entorno: añada c:\programs\MinGW\bin; al CAMINO
  4. Edite (cree si no existe) el archivo distutils.cfg ubicado en C:\Python26\Lib\distutils\distutils.cfg para que sea:

     [build] compiler=mingw32 
  5. Ahora ejecuta easy_install.exe amara .

Asegúrese de que el entorno esté configurado abriendo un nuevo cmd.exe .

Puede instalar la versión comstackda desde http://www.lfd.uci.edu/~gohlke/pythonlibs/

Si desea comstackr con Visual Studio C ++ en lugar de mingw …

  1. Ejecute python.exe para mostrar con qué versión de VC ++ se compiló (el ejemplo se muestra a continuación).

    Es importante usar la versión correspondiente del comstackdor de Visual C ++ con la que se compiló Python, ya que get_build_version de get_build_version evita la mezcla de versiones ( según la advertencia de Piotr ).

    • Amarillo (arriba) es Python 2.7, comstackdo con MSC v.1500 (Visual Studio C ++ 2008)
    • Rojo (abajo) es Python 3.4.1, comstackdo con MSC v.1600 (Visual Studio C ++ 2010)

    Ejemplo de la línea de comandos que muestra Python 2.7 compilado con MSC v.1500 y Python 3.4.1 compilado con MSC v.1600

  2. Use la tabla a continuación [1] para hacer coincidir la versión interna de VC ++ con la versión correspondiente de Visual Studio:

     MSC v.1000 -> Visual C++ 4.x MSC v.1100 -> Visual C++ 5 MSC v.1200 -> Visual C++ 6 MSC v.1300 -> Visual C++ .NET MSC v.1310 -> Visual C++ .NET 2003 MSC v.1400 -> Visual C++ 2005 (8.0) MSC v.1500 -> Visual C++ 2008 (9.0) MSC v.1600 -> Visual C++ 2010 (10.0) MSC v.1700 -> Visual C++ 2012 (11.0) MSC v.1800 -> Visual C++ 2013 (12.0) MSC v.1900 -> Visual C++ 2015 (14.0) MSC v.1910 -> Visual C++ 2017 (15.0) MSC v.1911 -> Visual C++ 2017 (15.3) MSC v.1912 -> Visual C++ 2017 (15.5) MSC v.1913 -> Visual C++ 2017 (15.6) MSC v.1914 -> Visual C++ 2017 (15.7) MSC v.1915 -> Visual C++ 2017 (15.8) MSC v.1916 -> Visual C++ 2017 (15.9) 
  3. Descargue e instale la versión correspondiente de Visual Studio C ++ del paso anterior.
    Notas adicionales para versiones específicas de VC ++ se enumeran a continuación.

    Notas para Visual Studio C ++ 2008

    Solo para los comstackdores de 32 bits, descargue Visual Studio C ++ 2008 Express Edition .

    Para los comstackdores de 64 bits [2] [3] , descargue Windows SDK para Windows 7 y .NET Framework 3.5 SP1 .

    • Desmarque todo excepto las Developer Tools >> Visual C++ Compilers para ahorrar tiempo y espacio en disco de la instalación de las herramientas de SDK que de otra forma no necesitaría.

    Notas para Visual Studio C ++ 2010

    Según Microsoft, si instaló Visual Studio 2010 SP1, es posible que haya eliminado los comstackdores y las bibliotecas para VC ++.
    Si ese es el caso, descargue la actualización del comstackdor de Visual C ++ 2010 SP1 .

    Notas para Visual Studio C ++ 2015

    Si no necesita el IDE de Visual Studio, descargue Visual Studio C ++ 2015 Build Tools .

    Notas para Visual Studio C ++ 2017

    Si no necesita el IDE de Visual Studio, descargue Build Tools para Visual Studio 2017 .

    Sugerencia : si tiene una instalación de Python de 32 y 64 bits, es posible que también desee usar virtualenv para crear entornos Python separados, de modo que pueda usar uno u otro a la vez sin alterar su ruta para elegir qué versión de Python utilizar.

De acuerdo con @srodriguex , es posible que pueda omitir la carga manual del archivo por lotes (Pasos 4-6) copiando unos pocos archivos por lotes a donde Python está buscando siguiendo esta respuesta . Si eso no funciona, aquí están los siguientes pasos que originalmente funcionaron para mí.

  1. Abre un cmd.exe

  2. Antes de intentar instalar algo que requiera extensiones de C, ejecute el siguiente archivo de proceso por lotes para cargar el entorno del comstackdor VC ++ en la sesión (es decir, las variables de entorno, la ruta al comstackdor, etc.).

    Ejecutar:

    • Comstackdores de 32 bits:

      Nota : las instalaciones de Windows de 32 bits solo tendrán C:\Program Files\ como se esperaba

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"

    • Comstackdores de 64 bits:

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars64.bat"

      Nota : Sí, los comstackdores nativos de 64 bits están en Program Files (x86) . No me preguntes por qué.
      Además, si se pregunta cuál es la diferencia entre vcvars64.bat y vcvarsx86_amd64.bat o, lo que es más importante, la diferencia entre amd64 y x86_amd64 , las primeras son para las herramientas nativas del comstackdor de 64 bits y las segundas son las comstackciones cruzadas de 64 bits que pueden ejecutar en una instalación de Windows de 32 bits.

    Actualizar:
    Si por alguna razón está recibiendo un error: ... was unexpected at this time. donde ... es una serie de caracteres, entonces debes verificar que tu variable de ruta no tenga caracteres extraños como citas extra o caracteres extraviados. El archivo por lotes no podrá actualizar la ruta de la sesión si no tiene sentido en primer lugar.

  3. Si eso salió bien, debería recibir uno de los siguientes mensajes según la versión de VC ++ y el comando que ejecutó:

    Para las herramientas de comstackción de 32 bits:
    Setting environment for using Microsoft Visual Studio 20xx x86 tools.

    Para las herramientas de comstackción de 64 bits:
    Setting environment for using Microsoft Visual Studio 20xx x64 tools.

  4. Ahora , ejecute la configuración a través de python setup.py install o pip install pkg-name

  5. Espere y cruce los dedos para que los planetas estén alineados correctamente para que VC ++ coopere.

¿Que esta pasando? Los módulos de Python se pueden escribir en C o C ++ (generalmente para velocidad). Si intenta instalar dicho paquete con Pip (o setup.py ), tiene que comstackr ese C / C ++ desde la fuente. Fuera de la caja, Pip asumirá descaradamente que el comstackdor Microsoft Visual C ++ está instalado. Si no lo tiene, verá este mensaje de error críptico “Error: No se puede encontrar vcvarsall.bat”.

La solución prescrita es instalar un comstackdor de C / C ++, ya sea Microsoft Visual C ++ o MinGW (un proyecto de código abierto). Sin embargo, instalar y configurar cualquiera de ellos es prohibitivamente difícil. (Edición 2014: Microsoft ha publicado un comstackdor especial de C ++ para Python 2.7)

La solución más sencilla es usar los instaladores de Windows de Christoph Gohlke (.msi) para los paquetes populares de Python. Construye instaladores para Python 2.xy 3.x, 32 bit y 64 bit. Puede descargarlos desde http://www.lfd.uci.edu/~gohlke/pythonlibs/


Si usted también piensa que “Error: No se puede encontrar vcvarsall.bat” es un mensaje absurdamente críptico e inútil, por favor comente el error en http://bugs.python.org/issue2943 para reemplazarlo por uno más útil y fácil de usar. mensaje amigable

A modo de comparación, Ruby se envía con un gestor de paquetes Gem y ofrece un comstackdor C / C ++ casi oficial, DevKit. Si intenta instalar un paquete sin él, verá este útil mensaje útil:

Actualice su PATH para incluir herramientas de comstackción o descargue el DevKit desde http://rubyinstaller.org/downloads y siga las instrucciones en http://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Puedes leer una perorata más larga sobre el empaquetado de Python en https://stackoverflow.com/a/13445719/284795

Tendrá que instalar un comstackdor de Microsoft, compatible con el comstackdor utilizado para comstackr Python. Esto significa que necesita Visual C ++ 2008 (o más reciente, con algunos ajustes ).

Microsoft ahora suministra un comstackdor y encabezados agrupados para poder comstackr extensiones de Python, en la memorable URL:

Comstackdor de Microsoft Visual C ++ para Python 2.7

http://aka.ms/vcpython27

Este es un paquete relativamente pequeño; 85 MB para descargar, instalables sin privilegios de administrador, no es necesario reiniciar. El nombre es un poco engañoso, el comstackdor funcionará para cualquier versión de Python comstackda originalmente con Visual C ++ 2008, no solo Python 2.7.

Si inicia un aviso interactivo de Python o imprime sys.version , busque la cadena de la versión de MSC ; Si es MSC v.1500 puedes usar esta herramienta.

Desde el anuncio original hasta la lista de distutils :

Microsoft ha lanzado un paquete de comstackción para Python 2.7 para facilitar a las personas la construcción y distribución de sus módulos de extensión C en Windows. El comstackdor de Microsoft Visual C ++ para Python 2.7 (también conocido como VC9) está disponible en: http://aka.ms/vcpython27

Este paquete contiene todas las herramientas y encabezados necesarios para comstackr módulos de extensión C para Python 2.7 de 32 y 64 bits (tenga en cuenta que algunos módulos de extensión requieren dependencias de terceros, como OpenSSL o libxml2, que no están incluidos). También se admiten otras versiones de Python construidas con Visual C ++ 2008, por lo que “Python 2.7” es solo publicidad, funcionará bien con 2.6 y 3.2.

Tenga en cuenta que necesita tener setuptools 6.0 o más reciente instalado (enumerados en los requisitos del sistema en la página de descarga). El proyecto que está instalando debe usar setuptools.setup() , no distutils o la detección automática no funcionará.

Microsoft ha declarado que desean mantener la URL estable, de modo que los scripts automatizados puedan hacer referencia a ella fácilmente.

Acabo de tener el mismo problema, por lo que contaré mi historia aquí con la esperanza de que ayude a otra persona con los mismos problemas y les ahorre el par de horas que acabo de pasar:

Tengo mingw (g ++ (GCC) 4.6.1) y python 2.7.3 en una caja de Windows 7 y estoy tratando de instalar PyCrypto.

Todo comenzó con este error al ejecutar setup.py install:

 error: Unable to find vcvarsall.bat 

Se resuelve fácilmente después de buscar el error en Google especificando mingw como el comstackdor de elección:

 setup.py install build --compiler=mingw32 

El problema es que entonces tengo un error diferente:

 configure: error: cannot run C compiled programs. 

Resulta que mi antivirus estaba bloqueando la ejecución de un archivo .exe recién comstackdo. Acabo de desactivar el “escudo residente” del antivirus y fui al siguiente error:

 cc1.exe: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' failed with exit status 1 

Esto lo resolvió: “Instale una versión un poco más antigua de MinGW, o edite distutils \ cygwinccompiler.py en su directorio de Python para eliminar todas las instancias de -mno-cygwin”. (desde aquí )

Ahora, finalmente puedo empezar a trabajar.

Parece que está buscando comstackdores de VC, así que podrías intentar mencionar el tipo de comstackdor con -c mingw32 , ya que tienes msys

 python setup.py install -c mingw32 

Tengo Python 2.73 y Windows 7. La solución que funcionó para mí fue:

  1. Se agregó el directorio bin de mingw32 a la variable de entorno: agregue PATH con C:\programs\mingw\bin;
  2. Creado distutils.cfg ubicado en C:\Python27\Lib\distutils\distutils.cfg contiene:

     [build] compiler=mingw32 

Para lidiar con MinGW que ya no reconoce el indicador -mno-cygwin, elimine el indicador en la línea 322 a 326 en C: \ Python27 \ Lib \ distutils \ cygwincompiler.py, para que se vea así:

  self.set_executables(compiler='gcc -O -Wall', compiler_so='gcc -mdll -O -Wall', compiler_cxx='g++ -O -Wall', linker_exe='gcc', linker_so='%s %s %s' % (self.linker_dll, shared_option, entry_point)) 

Busque en el archivo setup.py del paquete que está intentando instalar. Si es un paquete anterior, puede estar importando distutils.core.setup() lugar de setuptools.setup() .

Me encontré con esto (en 2015) con una combinación de estos factores:

  1. El comstackdor de Microsoft Visual C ++ para Python 2.7 de http://aka.ms/vcpython27

  2. Un paquete anterior que utiliza distutils.core.setup()

  3. Tratando de hacer python setup.py build lugar de usar pip .

Si usa una versión reciente de pip, forzará (monkeypatch) el paquete a usar setuptools, incluso si su setup.py requiere distracciones. Sin embargo, si no está utilizando pip, y en su lugar solo está haciendo python setup.py build , el proceso de comstackción utilizará distutils.core.setup() , que no conoce la ubicación de instalación del comstackdor.


Solución

Paso 1: Abra el símbolo del sistema de Visual C ++ 2008 apropiado

Abra el menú Inicio o la pantalla de Inicio y busque “Símbolo del sistema de Visual C ++ 2008 de 32 bits” (si su python es de 32 bits) o “Símbolo del sistema de Visual C ++ 2008 de 64 bits” (si su python es de 64 bits) . Ejecutarlo. El símbolo del sistema debe indicar Visual C ++ 2008 … en la barra de título.

Paso 2: Establecer variables de entorno

Establezca estas variables de entorno en el símbolo del sistema que acaba de abrir.

 SET DISTUTILS_USE_SDK=1 SET MSSdk=1 

Referencia http://bugs.python.org/issue23246

Paso 3: Construir e instalar

cd al paquete que desea comstackr, y ejecute python setup.py build , luego python setup.py install . Si desea instalarlo en un virtualenv, actívelo antes de construir.

Tal vez alguien pueda estar interesado, lo siguiente me funcionó para el paquete py2exe. (Tengo Windows 7 64 bits y Python 2.7 portátil, Visual Studio 2005 Express con Windows SDK para Windows 7 y .NET Framework 4)

 set VS90COMNTOOLS=%VS80COMNTOOLS% 

entonces:

 python.exe setup.py install 

Pasé casi 2 días descubriendo cómo solucionar este problema en mi versión de Python 3.4 64 bit: Python 3.4.3 (v3.4.3: 9b73f1c3e601, 24 de febrero de 2015, 22:44:40) [MSC v.1600 64 bit (AMD64 )] en win32

Solución 1, difícil: (antes de leer esto, lea primero la Solución 2 a continuación) Finalmente, esto es lo que me ayudó:

  1. instalar Visual C ++ 2010 Express
  2. instale Microsoft Windows SDK v7.1 para Windows 7
  3. cree manualmente el archivo vcvars64.bat en C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 que contiene CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 u otra ruta dependiendo de donde tengas instalado el tuyo
  4. (esto parece ser opcional) instale Microsoft Visual Studio 2010 Service Pack 1 junto con la actualización del comstackdor de Microsoft Visual C ++ 2010 Service Pack 1 para Windows SDK 7.1
  5. después de eso intenté pip install numpy pero recibí el siguiente error:

     File "numpy\core\setup.py", line 686, in get_mathlib_info raise RuntimeError("Broken toolchain: cannot link a simple C program") RuntimeError: Broken toolchain: cannot link a simple C program 

    Cambié mfinfo a None en C:\Python34\Lib\distutils\msvc9compiler.py por este https://stackoverflow.com/a/23099820/4383472

  6. finalmente, después del comando pip install numpy mi antivirus avast intentó interferir en el proceso de instalación, pero lo deshabilité rápidamente

Me tomó mucho tiempo, me costó varios minutos comstackr, incluso pensé que había un error, pero finalmente todo estuvo bien.

Solución 2, fácil: (Sé que este enfoque ya se ha mencionado en una respuesta muy votada, pero permítame repetirlo, ya que realmente es más fácil) Después de pasar por todo este trabajo, comprendí que la mejor manera para mí es usarlo. binarios precomstackdos de http://www.lfd.uci.edu/~gohlke/pythonlibs/ en el futuro. Hay muy pocas posibilidades de que necesite algún paquete (o una versión de un paquete) que este sitio no contenga. El proceso de instalación también es mucho más rápido de esta manera. Por ejemplo, para instalar numpy :

  1. numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl (si tiene Python 3.4 64-bit) de ese sitio
  2. en el símbolo del sistema o powershell instálelo con pip pip install numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl (o la ruta completa al archivo, dependiendo de cómo se abra el símbolo del sistema)

Quería ejecutar pysph en Windows 10 bajo Python 2.7 y obtuve vcvarsall.bat no se encontró (de distutils)

Mi solución fue la siguiente:

Instale Microsoft Visual C ++ para Python 2.7 (como sugirió @Michael)

En Windows 10 se instaló en (mi nombre de usuario es Andreas):

 C:\Users\Andreas\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0 

Establezca la variable de entorno VS90COMNTOOLS en la ruta de instalación de Visual C ++ para Python 2.7 (consulte la ruta anterior).

Si todavía no funciona, entonces modifíquelo en el módulo.

 C:/Python27/lib/distutils 

El archivo msvc9compiler.py . Encuentre en ella la función find_vcvarsall y haga la siguiente modificación.

Reemplace la línea:

 productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") 

con

 productdir = os.path.join(toolsdir) 

Aquí es donde reside vcvarsall.bat en mi caso (verifique dónde se encuentra vcvarsall.bat en su instalación).

Encontré este problema cuando intenté instalar la biblioteca numpy en mi python 3.5. La solución es instalar VS2015. Tenía VS2008, 2012, 2013, ninguno de los cuales es compatible con Python 3.5. Aparentemente, la versión más nueva de python depende de las versiones más nuevas de VS.

También asegúrese de que las herramientas comunes de C ++ estén instaladas con Visual Studio.

introduzca la descripción de la imagen aquí

Intenté todas las respuestas anteriores y encontré que todas no funcionaban, quizás era que estaba usando Windows 8 y tenía instalado Visual Studio 2012. En este caso, esto es lo que haces.

El archivo vcvarsall.bat se encuentra aquí: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC

Simplemente seleccione el archivo y cópielo.

Luego vaya a este directorio: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools

y pega el archivo. Y entonces, todo debería estar bien.

Puede descargar la edición gratuita de Visual C ++ 2008 Express desde http://go.microsoft.com/?linkid=7729279 , que establecerá la variable de entorno VS90COMNTOOLS durante la instalación y, por lo tanto, comstackrá con un comstackdor compatible.

Como @PiotrDobrogost mencionó en un comentario, su respuesta a esta otra pregunta entra en detalles sobre por qué Visual C ++ 2008 es lo correcto con lo que se debe comstackr, pero esto puede cambiar a medida que la versión de Python en Windows se traslada a nuevas versiones de Visual Studio: comstackción de lxml para Python 2.7 en Windows

Tuve este problema al usar Python 3.4.1 en Windows 7 x64 , y desafortunadamente los paquetes que necesitaba no tenían el exe adecuado ni las ruedas que podía usar. Este sistema requiere algunas “soluciones alternativas”, que se detallan a continuación (y TLDR en la parte inferior ).

Usando la información en la respuesta de Jaxrtech anterior , determiné que necesitaba Visual Studio C ++ 2010 (sys.version return MSC v.1600), así que instalé Visual C ++ 2010 Express desde el enlace en su respuesta, que es http://go.microsoft .com /? linkid = 9709949 . Instalé todo con actualizaciones, pero como puedes leer a continuación, esto fue un error. Solo la versión original de Express debe estar instalada en este momento (no se ha actualizado nada).

vcvarsall.bat ahora estaba presente, pero hubo un nuevo error al instalar el paquete, query_vcvarsall raise ValueError(str(list(result.keys())))ValueError: [u'path'] . Hay otras preguntas de stackoverflow con este error, como Errores al comstackr / instalar el módulo C para Python 2.7

A partir de esa respuesta, determiné que 2010 Express solo instala comstackdores de 32 bits. Para obtener comstackdores de 64 bits (y otros), debe instalar Windows 7.1 SDK. Consulte http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx

Sin embargo, esto no se instalaría para mí y el instalador devolvió el error de installation failed with return code 5100 . Encontré la solución en el siguiente enlace: http://support.microsoft.com/kb/2717426 . En resumen, si se instalan versiones más nuevas de los Redistribuibles Microsoft Visual C ++ 2010 de x86 y x64, entran en conflicto con las del instalador del SDK y necesitan ser desinstaladas primero.

El SDK luego se instaló, pero noté que vcvars64.bat aún no existía en C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin , ni en sus subcarpetas. vcvarsall.bat ejecuta el archivo por lotes vcvars64, por lo que sin él, el paquete python aún no se instalaría (olvidé el error que se mostró en este momento).

Luego encontré algunas instrucciones aquí: http://www.cryptohaze.com/wiki/index.php/Windows_7_Build_Setup#Download_VS_2010_and_Windows_SDK_7.1 Siguiendo las instrucciones, ya había instalado Express y 7.1 SDK, así que instalé SDK 7.1 SP1, e hice el falta el archivo del encabezado Luego creé manualmente vcvars64.bat con el contenido CALL setenv /x64 . Pegaré todas esas instrucciones aquí, para que no se pierdan.

El paso 1 es descargar Visual Studio Express 2010.

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express es un buen lugar para comenzar. Descargue el instalador y ejecútelo (vc_web.exe). No necesitas la descarga adicional de SQL 2008.

You’ll also need the Windows SDK (currently 7.1) for the 64-bit compilers – unless you want to do 32-bit only builds, which are not fully supported…

http://www.microsoft.com/en-us/download/details.aspx?id=8279 is a good starting point to download this – you’ll want to run winsdk_web.exe when downloaded!

The default install here is just fine.

Finally, download and install the Windows SDK 7.1 SP1 update: http://www.microsoft.com/en-us/download/details.aspx?id=4422

And, to fix missing header file, VS2010 SP1. http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5

And, bloody hell, fix the missing batch file for VS2010 Express. This is getting downright absurd.

In C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64, create “vcvars64.bat” with the following (you will need to be running as administrator):

CALL setenv /x64

My python package still did not install (can’t recall error). I then found some instructions (copied below) to use the special SDK 7.1 Command Prompt, see: https://mail.python.org/pipermail/distutils-sig/2012-February/018300.html

Never mind this question. Somebody here noticed this item on the menu: Start->All Programs->Microsoft Windows SDK v7.1 ->Windows SDK 7.1 Command Prompt

This runs a batch job that appears to set up a working environment for the compiler. From that prompt, you can type “setup.py build” or “setup.py install”.

I opened the Windows SDK 7.1 Command Prompt as instructed, and used it to run easy_install on the python package. And at last, success!


TLDR ;

  1. Install Visual Studio Express 2010 (preferably without updated redistributables or SQL server).
  2. Install Windows 7.1 SDK
  3. Instal SDK 7.1 SP1 update, and VS2010 SP1 header file fix (this step may not be required).
  4. Manually create C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat with content CALL setenv /x64
  5. Start->All Programs->Microsoft Windows SDK v7.1 ->Windows SDK 7.1 Command Prompt to open special x64 command prompt, which can then be used with python/easy_install/pip/etc (including those in virtual_envs).

I tried many solutions but only one worked for me, the install of Microsoft Visual Studio 2008 Express C++.

I got this issue with a Python 2.7 module written in C (yEnc, which has other issues with MS VS). Note that Python 2.7 is built with MS VS 2008 version, not 2010!

Despite the fact it’s free, it is quite hard to find since MS is promoting VS 2010. Still, the MSDN official very direct links are still working: check https://stackoverflow.com/a/15319069/2227298 for download links.

If you have mingw installed

 pip install --global-option build_ext --global-option --compiler=mingw32 packagename 

works, forcing pip to build using the mingw compiler instead of Microsoft’s. See here https://github.com/pypa/pip/issues/18 for details (last post).

Is Microsoft Visual C++ Compiler for Python 2.7 at http://www.microsoft.com/en-us/download/details.aspx?id=44266 not a solution?

The easiest way to solve this in 2016 is to install Chocolatey and then the vcpython27 package. Open Powershell:

 > iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) > choco install python2 -y > choco install vcpython27 -y 

Below steps fixed this issue for me, I was trying to create setup with cython extension.

  1. Install Microsoft Visual C++ Compiler for Python 2.7
  2. The default install location would be @ C:\Users\PC-user\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python This might actually fix the issue, test once before proceeding.
  3. If it fails, Check where in VC++ for python vcvarsall.bat file is located
  4. Open the msvc9compiler.py file of distutils package in notepad.
  5. In my box this was @ C:\Anaconda2\Lib\distutils\msvc9compiler.py find_vcvarsall function in this file, determine the version of VC by printing out version argument. For Python 2.7 it’s likely to be 9.0
  6. Now create an environment variable VS90COMNTOOLS, Pointing to C:\Users\PC-user\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\bin
  7. For some reason distutils expects the vcvarsall.bat file to be within VC dir, but VC++ for python tools has it in the root of 9.0 To fix this, remove “VC” from the path.join (roughly around line 247)

    #productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") productdir = os.path.join(toolsdir, os.pardir, os.pardir)

The above steps fixed the issue for me.

I don’t know if it is too late, but I found Microsoft Visual C++ Compiler for Python 2.7 which reads

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

¡Espero que esto ayude!

I got the same problem and have solved it at the moment.

“Google” told me that I need to install “Microsoft Visual C++ Compiler for Python 2.7”. I install not only the tool, but also Visual C++ 2008 Reditributable, but it didn’t help. I then tried to install Visual C++ 2008 Express Edition. And the problem has gone!

Just try to install Visual C++ 2008 Express Edition!

If you’re looking to install pyodbc on a Windows box that doesn’t have Visual Studio installed another option is to manually install pyodbc using the binary distribution.

This is particularly useful if you do not have administrator privileges on the machine you’re working with and are trying to set up a virtualenv .

Pasos:

  1. Download the latest Windows installer from here (pyodbc-XXXwin-Y-py2.7.exe)
  2. Open the installer executable using 7-Zip (or WinRAR or whatever)
  3. Extract pyodbc.pyd and pyodbc-XXX-py2.7.egg-info and place them in [python installation directory or virtualenv]\Lib\site-packages
  4. There is no step 4 🙂

With Python 3.4, the dependency is on Visual Studio 2010. Installing Visual C++ 2010 Express fixed the problem for me.

Tricking it into using the VS 2008 or 2013 installs that I happened to have didn’t work.

You can use easy_install instead of pip it works for me.

The answer given by @monkey is one of the correct ones, but it is incomplete.

In case you’d like to use MinGW , you should select the C, C++ and also other development tools suggested during the MinGW installation process to also get “make.exe.”

You must also have the path set to make.exe in the env.

To complete his answer, here are the steps:

  1. Add mingw32’s bin directory to your environment variables
  2. Append C:\Programs\MinGW\bin;C:\Programs\MinGW\msys\1.0\bin; to the PATH
  3. Edit (create if it doesn’t exist) the distutils.cfg file located at C:\Python26\Lib\distutils\distutils.cfg to be:

     [build] compiler=mingw32 

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

I had the same error (which I find silly and not really helpful whatsoever as error messages go) and continued having problems, despite having a C compiler available.

Surprising, what ended up working for me was simply upgrading pip and setuptools to the most recent version . Hope this helps someone else out there.

fastest solution :

If you have python 3.4.x , the solution is simply to install VC++ 2010 since it is used to compile itself into.

https://www.visualstudio.com/en-us/downloads#d-2010-express

my python version is MSC v.1600 32 bit (intel)] on win32

worked fine on Windows8