error: No se puede encontrar vcvarsall.bat
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
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 VS90COMNTOOLS
variable 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.
Encontré la solución. Tuve exactamente el mismo problema y error al instalar 'amara'. Tenía instalado mingw32, pero era necesario configurar distutils.
- Tengo Python 2.6 que ya estaba instalado.
- Instalé mingw32 en
C:\programs\mingw\
- Agregue el directorio bin de mingw32 a su variable de entorno: agréguelo
c:\programs\MinGW\bin;
a la RUTA Edite (cree si no existe) el archivo distutils.cfg ubicado en
C:\Python26\Lib\distutils\distutils.cfg
para que sea:[build] compiler=mingw32
Ahora corre
easy_install.exe amara
.
Asegúrese de que el entorno esté configurado abriendo un nuevo archivo cmd.exe
.
Puede instalar la versión compilada desde http://www.lfd.uci.edu/~gohlke/pythonlibs/
Si desea compilar con Visual Studio C++ en lugar de mingw...
Ejecute
python.exe
para 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 distilutils
get_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)
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)
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++ Compilers
para 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.
- Desmarque todo excepto
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í.
abre un
cmd.exe
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 entrevcvars64.bat
y,vcvarsx86_amd64.bat
lo que es más importante, la diferencia entreamd64
yx86_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 llegaerror: ... 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.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.
Ahora , ejecute la instalación mediante
python setup.py install
opip install pkg-name
Espero y cruce los dedos para que los planetas estén alineados correctamente para que VC++ coopere.
¿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