studio - microsoft visual c++ compiler for python 3.7 download
Compilador de Microsoft Visual C++ para Python 2.7 (6)
Descargué el compilador de Microsoft Visual C ++ para Python 2.7 , e vcvarsall.bat
, la ruta completa de vcvarsall.bat
es:
C:/Users/UserName/AppData/Local/Programs/Common/Microsoft/Visual C++ for Python/9.0/vcvarsall.bat
Pero el siguiente código no puede devolver la ruta de acceso:
from distutils import msvc9compiler
msvc9compiler.find_vcvarsall(9.0)
El instalador no escribe la información de instalación en el registro y, a partir del código fuente de find_vcvarsall()
, parece que no puede encontrar el archivo VS90COMNTOOLS
configuración de VS90COMNTOOLS
, porque requiere que el nombre de la carpeta que contiene vcvarsall.bat
es VC
:
productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")
¿Cómo puedo usar el compilador sin modificar el registro o el nombre de la carpeta?
Actualice setuptools a 6.0 o superior. En esas versiones, setuptools puede detectar automáticamente el compilador de Microsoft Visual C ++ para Python 2.7 con vcvarsall.bat .
Por favor haga referencia a:
Actualice su setuptools en la línea de comando:
pip install --upgrade setuptools
Las últimas versiones de setuptools por encima de 6.0 deberían detectar automáticamente el compilador de Microsoft Visual C ++ para Python 2.7
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 construcción usará 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 pitón es de 32 bits) o "Símbolo del sistema de Visual C ++ 2008 de 64 bits" (si su pitón 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.
Christian Long proporciona una solución practicable. Pero si no desea modificarlo en "Comando de Visual C ++ 2008 de 32 bits / 64 bits" cada vez, simplemente puede averiguar la ubicación de "vcvarsall.bat", es decir, "C: / Users / UserName / AppData / Local / Programs / Common / Microsoft / Visual C ++ para Python / 9.0 / vcvarsall.bat ", y luego modifique la función find_vcvarsall (versión) en Python27 / Lib / distutils / msvc9compiler.py
Me gusta esto:
def find_vcvarsall(version):
productdir= "C:/Users/UserName/AppData/Local/Programs/Common/Microsoft/Visual C++ for Python/9.0"
vcvarsall = os.path.join(productdir, "vcvarsall.bat")
if os.path.isfile(vcvarsall):
return vcvarsall
else:
return None
Simple, feo pero útil.
Estaba teniendo el mismo problema con este paquete, parece que realmente no lo probaron con una instalación limpia.
Al final, acabo de agregar una clave para crear COMPUTER/HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/VisualStudio/9.0/Setup/VC
luego agregué un valor de cadena con el nombre productdir
con el valor establecido en mi ruta a vcvarsall.bat, que Era igual que el tuyo.
Todo lo que necesita es este enlace: https://www.microsoft.com/en-us/download/details.aspx?id=44266
no hay necesidad de actualizar o modificar las variables de ruta o cualquier otra cosa.