python - setup - error: no se puede encontrar vcvarsall.bat
python setup py egg_info failed with error 1 (30)
Si desea compilar con Visual Studio C ++ en lugar de mingw ...
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 compilador de Visual C ++ con la que se compiló Python, ya que distilutils de
get_build_version
evita la mezcla de versiones ( según la advertencia de Piotr ).- Amarillo (arriba) es Python 2.7, compilado con MSC v.1500 (Visual Studio C ++ 2008)
- Rojo (abajo) es Python 3.4.1, compilado con MSC v.1600 (Visual Studio C ++ 2010)
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)
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
Para solo 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 las
Developer Tools >> Visual C++ Compilers
para ahorrar tiempo y espacio en disco de la instalación de las herramientas del 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 compiladores y las bibliotecas para VC ++.
Si ese es el caso, descargue la actualización del compilador 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, también puede usar virtualenv para crear entornos de 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.
- Desmarque todo excepto las
De acuerdo con @srodriguex , es posible que pueda omitir la carga manual del archivo por lotes (Pasos 4-6) copiando unos cuantos 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í.
Abre un
cmd.exe
Antes de intentar instalar algo que requiera extensiones de C, ejecute el siguiente archivo de proceso por lotes para cargar el entorno del compilador VC ++ en la sesión (es decir, las 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/
como se esperaba"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 de 64 bits nativos están en
Program Files (x86)
. No me preguntes por qué.
Además, si se pregunta cuál es la diferencia entrevcvars64.bat
yvcvarsx86_amd64.bat
o, lo que es más importante, la diferencia entreamd64
yx86_amd64
, las primeras son para las herramientas nativas del compilador de 64 bits y las segundas son los compiladores cruzados de 64 bits que pueden ejecutar en una instalación de Windows de 32 bits.
Actualizar:
Si por alguna razón está obteniendo unerror: ... was unexpected at this time.
donde...
es una serie de caracteres, entonces debe verificar que su variable de ruta no tenga caracteres extraños como citas extra o caracteres extraviados. El archivo por lotes no podrá actualizar la ruta de su sesión si no tiene sentido en primer lugar.Si eso salió bien, debería recibir uno de los siguientes mensajes dependiendo de la versión de VC ++ y el comando que ejecutó:
Para las herramientas de compilación de 32 bits:
Setting environment for using Microsoft Visual Studio 20xx x86 tools.
Para las herramientas de compilación de 64 bits:
Setting environment for using Microsoft Visual Studio 20xx x64 tools.
Ahora , ejecute la configuración a través de
python setup.py install
opip install pkg-name
Espere y cruce los dedos para que los planetas estén alineados correctamente para que VC ++ coopere.
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 intento instalar el paquete manualmente:
> python setup.py install
running build_ext
building ''dulwich._objects'' extension
error: Unable to find vcvarsall.bat
¿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
), debe compilar ese C / C ++ desde la fuente. Fuera de la caja, Pip asumirá descaradamente que el compilador 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 compilador 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 microsoft.com/en-us/download/details.aspx?id=44266 especial de microsoft.com/en-us/download/details.aspx?id=44266 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 bugs.python.org/issue2943 para reemplazarlo por uno más útil y útil. mensaje amistoso
Para comparar, Ruby se envía con un gestor de paquetes Gem y ofrece un compilador C / C ++ cuasi oficial, DevKit. Si intenta instalar un paquete sin él, verá este útil mensaje útil:
Actualice su PATH para incluir herramientas de compilació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://.com/a/13445719/284795
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 pasé:
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 compilador 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 compilado. 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 here )
Ahora, finalmente puedo empezar a trabajar.
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:
El compilador de Microsoft Visual C ++ para Python 2.7 de http://aka.ms/vcpython27
Un paquete anterior que utiliza
distutils.core.setup()
Tratando de hacer
python setup.py build
lugar de usarpip
.
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 compilación utilizará distutils.core.setup()
, que no conoce la ubicación de instalación del compilador.
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 compilar, y ejecute python setup.py build
, luego python setup.py install
. Si desea instalar en un virtualenv, actívelo antes de construir.
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.
Encontré la solución. Tuve exactamente el mismo problema y error al instalar ''amara''. Tenía instalado mingw32, pero era necesario configurar los nombres.
- 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: añada
c:/programs/MinGW/bin;
al CAMINO Edite (cree si no existe) el archivo distutils.cfg ubicado en
C:/Python26/Lib/distutils/distutils.cfg
para que sea:[build] compiler=mingw32
Ahora ejecuta
easy_install.exe amara
.
Asegúrese de que el entorno esté configurado al abrir un nuevo cmd.exe
.
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.
Parece que está buscando compiladores de VC, así que podrías intentar mencionar el tipo de compilador con -c mingw32
, ya que tienes msys
python setup.py install -c mingw32
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ó:
- instalar Visual C ++ 2010 Express
- instale Microsoft Windows SDK v7.1 para Windows 7
- cree manualmente el archivo
vcvars64.bat
enC:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/amd64
que contieneCALL "C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/SetEnv.cmd" /x64
u otra ruta dependiendo de donde tengas instalado el tuyo - (esto parece ser opcional) instale Microsoft Visual Studio 2010 Service Pack 1 junto con Microsoft Visual C ++ 2010 Service Pack 1 Actualización del compilador para el SDK de Windows 7.1
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
aNone
enC:/Python34/Lib/distutils/msvc9compiler.py
por este https://.com/a/23099820/4383472- 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 compilar, 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 answer altamente 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 precompilados 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
:
-
numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl
(si tiene Python 3.4 64-bit) de ese sitio - 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)
Puede descargar la edición gratuita de Visual C ++ 2008 Express desde go.microsoft.com/?linkid=7729279 , que establecerá la variable de entorno VS90COMNTOOLS durante la instalación y, por lo tanto, compilará con un compilador 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 compilar, pero esto puede cambiar a medida que la versión de Python en Windows se traslada a nuevas versiones de Visual Studio: compilación de lxml para Python 2.7 en Windows
Puede instalar la versión compilada desde http://www.lfd.uci.edu/~gohlke/pythonlibs/
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).
Tal vez alguien pueda estar interesado, lo siguiente me funcionó para el paquete py2exe. (Tengo Windows 7 64 bit 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
Tendrá que instalar un compilador de Microsoft, compatible con el compilador utilizado para compilar Python. Esto significa que necesita Visual C ++ 2008 (o más reciente, con share ).
Microsoft ahora suministra un compilador y encabezados agrupados para poder compilar extensiones de Python, en la memorable URL:
Microsoft Visual C ++ Compiler para Python 2.7
Este es un paquete relativamente pequeño; 85 MB para descargar, instalable sin privilegios de administrador, no requiere reinicio. El nombre es un poco engañoso, el compilador funcionará para cualquier versión de Python compilada 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 compilació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 compilador 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 crear módulos de extensión C para Python 2.7 de 32 bits 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.
Tengo Python 2.73 y Windows 7. La solución que funcionó para mí fue:
- Se agregó el directorio bin de mingw32 a la variable de entorno: agregue PATH con
C:/programs/mingw/bin;
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 de 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))
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 o 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 con este error, como Errores al construir / instalar el módulo C para Python 2.7
A partir de esa respuesta, determiné que 2010 Express solo instala compiladores de 32 bits. Para obtener compiladores 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 de Microsoft Visual C ++ 2010 x86 y x64, entran en conflicto con las del instalador del SDK, y es necesario desinstalarlas 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.
También necesitarás el SDK de Windows (actualmente 7.1) para los compiladores de 64 bits, a menos que quieras hacer solo compilaciones de 32 bits, que no son totalmente compatibles ...
http://www.microsoft.com/en-us/download/details.aspx?id=8279 es un buen punto de partida para descargar esto. ¡Querrá ejecutar winsdk_web.exe cuando se descargue!
La instalación predeterminada aquí está bien.
Finalmente, descargue e instale la actualización de Windows SDK 7.1 SP1: http://www.microsoft.com/en-us/download/details.aspx?id=4422
Y, para arreglar el archivo de encabezado faltante, VS2010 SP1. http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5
Y, maldito infierno, arregle el archivo por lotes faltante para VS2010 Express. Esto se está volviendo francamente absurdo.
En C: / Archivos de programa (x86) / Microsoft Visual Studio 10.0 / VC / bin / amd64, cree "vcvars64.bat" con lo siguiente (deberá ejecutar como administrador):
CALL setenv / x64
Mi paquete de Python todavía no se instaló (no se puede recuperar el error). Luego encontré algunas instrucciones (copiadas a continuación) para usar el símbolo del sistema SDK 7.1 especial, consulte: https://mail.python.org/pipermail/distutils-sig/2012-February/018300.html
No importa esta pregunta. Alguien aquí notó este elemento en el menú: Inicio-> Todos los programas-> Microsoft Windows SDK v7.1 -> Símbolo de sistema de Windows SDK 7.1
Esto ejecuta un trabajo por lotes que parece configurar un entorno de trabajo para el compilador. Desde ese indicador, puede escribir "setup.py build" o "setup.py install".
Abrí la solicitud de comando de Windows SDK 7.1 como se me indicó, y lo usé para ejecutar easy_install en el paquete de python. Y por fin, el éxito!
TLDR ;
- Instale Visual Studio Express 2010 (preferiblemente sin redistribuibles actualizados o servidor SQL).
- Instalar Windows 7.1 SDK
- Instale la actualización del SDK 7.1 SP1 y la corrección del archivo de cabecera VS2010 SP1 (este paso puede no ser necesario).
- Crear manualmente
C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/amd64/vcvars64.bat
con contenidoCALL setenv /x64
- Inicio-> Todos los programas-> Microsoft Windows SDK v7.1 -> Símbolo de sistema del SDK 7.1 de Windows para abrir el símbolo del sistema x64 especial, que luego se puede usar con python / easy_install / pip / etc (incluidos los de virtual_envs).
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 microsoft.com/en-us/download/details.aspx?id=44266 ( details ) 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 reciente 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 compilar módulos de Python.
Consulte Creación de lxml para Python 2.7 en Windows para obtener detalles.
La solución más rápida :
Si tiene Python 3.4.x , la solución es simplemente instalar VC ++ 2010, ya que se utiliza para compilarse.
https://www.visualstudio.com/en-us/downloads#d-2010-express
mi versión de python es MSC v.1600 32 bit (intel)] en win32
funcionó bien en Windows8
Con Python 3.4, la dependencia está en Visual Studio 2010. La instalación de Visual C ++ 2010 Express solucionó el problema.
Engañándolos para que usen las instalaciones de VS 2008 o 2013 que, por casualidad, no funcionaron.
La respuesta dada por @monkey es una de las correctas, pero está incompleta.
En caso de que desee utilizar MinGW , debe seleccionar C, C ++ y otras herramientas de desarrollo sugeridas durante el proceso de instalación de MinGW para obtener "make.exe".
También debe tener la ruta establecida para make.exe en la env.
Para completar su respuesta, aquí están los pasos:
- Agregue el directorio bin de mingw32 a sus variables de entorno
- Anexar
C:/Programs/MinGW/bin;C:/Programs/MinGW/msys/1.0/bin;
al PATH Edite (cree si no existe) el
distutils.cfg
archivo ubicado enC:/Python26/Lib/distutils/distutils.cfg
:[build] compiler=mingw32
Asegúrese de que las variables de entorno estén establecidas abriendo un nuevo cmd.exe.
Los siguientes pasos solucionaron este problema para mí, estaba intentando crear una configuración con la extensión cython.
- Instale el compilador de Microsoft Visual C ++ para Python 2.7
- La ubicación de instalación predeterminada sería @ C: / Users / PC-user / AppData / Local / Programs / Common / Microsoft / Visual C ++ para Python Esto podría solucionar el problema, pruebe una vez antes de continuar.
- Si falla, verifique dónde se encuentra el archivo vcvarsall.bat en VC ++ para Python
- Abra el archivo msvc9compiler.py del paquete distutils en el bloc de notas.
- En mi casilla, esta fue la función @ C: / Anaconda2 / Lib / distutils / msvc9compiler.py find_vcvarsall en este archivo, determine la versión de VC imprimiendo el argumento de la versión. Para Python 2.7 es probable que sea 9.0
- Ahora cree una variable de entorno VS90COMNTOOLS, apuntando a C: / Users / PC-user / AppData / Local / Programs / Common / Microsoft / Visual C ++ para Python / 9.0 / VC / bin
Por alguna razón, distutils espera que el archivo vcvarsall.bat esté dentro del directorio de VC, pero VC ++ para las herramientas de python lo tiene en la raíz de 9.0. Para solucionar esto, elimine "VC" de la ruta.
#productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") productdir = os.path.join(toolsdir, os.pardir, os.pardir)
Los pasos anteriores solucionaron el problema para mí.
Puedes usar easy_install en lugar de pip, me funciona.
Si tienes instalado mingw
pip install --global-option build_ext --global-option --compiler=mingw32 packagename
funciona, forzando a pip a compilar usando el compilador mingw en lugar de Microsoft. Vea aquí https://github.com/pypa/pip/issues/18 para más detalles (última publicación).
Tengo el mismo problema y lo he resuelto en este momento.
"Google" me dijo que necesitaba instalar "Microsoft Visual C ++ Compiler for Python 2.7". Instalo no solo la herramienta, sino también Visual C ++ 2008 Reditributable, pero no ayudó. Luego intenté instalar Visual C ++ 2008 Express Edition. ¡Y el problema se ha ido!
¡Solo intenta instalar Visual C ++ 2008 Express Edition!
Tuve el mismo error (lo cual me parece tonto y no me sirve de nada en absoluto como mensajes de error) y seguí teniendo problemas, a pesar de tener un compilador de C disponible.
Sorprendentemente, lo que terminó funcionando para mí fue simplemente actualizar pip y setuptools a la versión más reciente . Espero que esto ayude a alguien más por ahí.
¿Microsoft Visual C ++ Compiler para Python 2.7 en microsoft.com/en-us/download/details.aspx?id=44266 no es una solución?
La forma más fácil de resolver esto en 2016 es instalar Chocolatey y luego el vcpython27
paquete. Abrir PowerShell:
> iex ((new-object net.webclient).DownloadString(''https://chocolatey.org/install.ps1''))
> choco install python2 -y
> choco install vcpython27 -y
No sé si es demasiado tarde, pero encontré el microsoft.com/en-us/download/details.aspx?id=44266 que lee
El mensaje de error típico que recibirá si necesita este paquete de compilador es No se puede encontrar vcvarsall.bat
¡Espero que esto ayude!
Probé muchas soluciones, pero solo una me funcionó, la instalación de Microsoft Visual Studio 2008 Express C ++.
Conseguí este problema con un módulo Python 2.7 escrito en C (yEnc, que tiene otros problemas con MS VS). ¡Tenga en cuenta que Python 2.7 está construido con la versión MS VS 2008, no 2010!
A pesar de que es gratuito, es bastante difícil de encontrar ya que MS promueve VS 2010. Sin embargo, los enlaces muy directos oficiales de MSDN siguen funcionando: visite https://.com/a/15319069/2227298 para obtener enlaces de descarga.
Si desea instalar pyodbc en un cuadro de Windows que no tiene instalado Visual Studio, otra opción es instalar manualmente pyodbc utilizando la distribución binaria.
Esto es particularmente útil si no tiene privilegios de administrador en la máquina con la que está trabajando y está intentando configurar un virtualenv .
Pasos:
- Descargue el último instalador de Windows desde here (pyodbc-XXXwin-Y-py2.7.exe)
- Abra el ejecutable del instalador usando 7-Zip (o WinRAR o lo que sea)
- Extraiga pyodbc.pyd y pyodbc-XXX-py2.7.egg-info y colóquelos en
[python installation directory or virtualenv]/Lib/site-packages
- No hay paso 4 :)