error: No se puede encontrar vcvarsall.bat

Resuelto okada asked hace 14 años • 0 respuestas

Intenté instalar el paquete Python dulwich :

pip install dulwich

Pero recibo un mensaje de error críptico:

error: Unable to find vcvarsall.bat

Lo mismo sucede si intento instalar el paquete manualmente:

> python setup.py install
running build_ext
building 'dulwich._objects' extension
error: Unable to find vcvarsall.bat
okada avatar May 12 '10 17:05 okada
Aceptado

Actualización : los comentarios señalan que las instrucciones aquí pueden ser peligrosas. Considere usar la edición Visual C++ 2008 Express o el compilador 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 instalaciones de paquetes, Python 2.7 busca un Visual Studio 2008 instalado. Puede engañar a Python para que use un Visual Studio más nuevo estableciendo la ruta correcta en la VS90COMNTOOLSvariable de entorno antes de llamar setup.py.

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

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

ADVERTENCIA: Como se indica a continuación, es poco probable que esta respuesta funcione si intenta compilar módulos de Python.

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

fmuecke avatar May 11 '2012 20:05 fmuecke

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

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

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

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

ninMonkey avatar May 15 '2010 03:05 ninMonkey

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

Volodymyr Bryliant avatar May 12 '2011 19:05 Volodymyr Bryliant

Si desea compilar con Visual Studio C++ en lugar de mingw...

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

    Es importante utilizar la versión correspondiente del compilador de Visual C++ con el que se compiló Python, ya que distilutilsget_build_version impide mezclar versiones ( según la advertencia de Piotr ).

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

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

  2. Utilice la siguiente tabla [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.
    A continuación se enumeran notas adicionales para versiones específicas de VC++.

    Notas para Visual Studio C++ 2008

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

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

    • Desmarque todo excepto Developer Tools >> Visual C++ Compilerspara ahorrar tiempo y espacio en disco al instalar herramientas SDK que de otro modo no necesitaría.

    Notas para Visual Studio C++ 2010

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

    Notas para Visual Studio C++ 2015

    Si no necesita Visual Studio IDE, 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 de Python separados para poder usar uno u otro a la vez sin alterar la ruta para elegir qué versión de Python usar. usar.

Según @srodriguex , es posible que pueda omitir la carga manual del archivo por lotes (Pasos 4 a 6) copiando algunos archivos por lotes en el lugar donde Python está buscando siguiendo esta respuesta . Si eso no funciona, estos son los siguientes pasos que originalmente funcionaron para mí.

  1. abre uncmd.exe

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

    Ejecutar:

    • Compiladores de 32 bits:

      Nota : Las instalaciones de Windows de 32 bits solo tendrán C:\Program Files\el resultado esperado.

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

    • Compiladores de 64 bits:

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

      Nota : Sí, los compiladores nativos de 64 bits están en formato Program Files (x86). No me preguntes por qué.
      Además, si se pregunta cuál es la diferencia entre vcvars64.baty, vcvarsx86_amd64.batlo que es más importante, la diferencia entre amd64y x86_amd64, los primeros son para las herramientas de compilación nativas de 64 bits y los segundos son los compiladores cruzados de 64 bits que se pueden ejecutar en una instalación de Windows de 32 bits. .

    Actualización:
    si por alguna razón llega error: ... was unexpected at this time.a donde ...hay una serie de caracteres, entonces debe verificar que su variable de ruta no tenga caracteres extraños como comillas adicionales o caracteres perdidos. El archivo por lotes no podrá actualizar la ruta de su sesión si, en primer lugar, no tiene sentido.

  3. Si todo 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 del compilador de 32 bits:
    Setting environment for using Microsoft Visual Studio 20xx x86 tools.

    Para las herramientas del compilador de 64 bits:
    Setting environment for using Microsoft Visual Studio 20xx x64 tools.

  4. Ahora , ejecute la instalación mediante python setup.py installopip install pkg-name

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

Josh Bowden avatar Aug 04 '2013 16:08 Josh Bowden

¿Qué está sucediendo? Los módulos de Python pueden estar escritos en parte en C o C++ (normalmente para mayor velocidad). Si intenta instalar un paquete de este tipo con Pip (o setup.py), debe compilar ese C/C++ desde el código fuente. Fuera de la caja, Pip asumirá descaradamente que tiene instalado el compilador Microsoft Visual C++. Si no lo tiene, verá este críptico mensaje de error "Error: no se puede encontrar vcvarsall.bat".

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

La solución más sencilla es utilizar los instaladores de Windows (.msi) de Christoph Gohlke para los paquetes populares de Python. Crea instaladores para Python 2.xy 3.x, 32 bits y 64 bits. 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 ridículamente críptico e inútil, comente el error en http://bugs.python.org/issue2943 para reemplazarlo con uno más útil y útil. mensaje amistoso.

A modo de comparación, Ruby viene con un administrador de paquetes Gem y ofrece un compilador C/C++ casi oficial, DevKit. Si intenta instalar un paquete sin él, verá este útil y amigable mensaje:

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

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

Colonel Panic avatar Aug 02 '2013 13:08 Colonel Panic