python - instalación de pip da error: no se puede encontrar vcvarsall.bat
python-2.7 zipline (10)
Aprecio que esta podría no ser la respuesta para resolver el 3.4 pero intenté una gran variedad de cosas para arreglar esto en 3.4 y pensé que esto podría ser útil si alguien es presionado por el tiempo o no tiene el conocimiento para corregirlo (en mi caso, el trabajo lo exige).
Con exactamente la misma configuración, descubrí que mis problemas de instalación solo ocurrieron con Python 3.4. Cuando cambié a 2.7, todos mis problemas parecían estar resueltos.
Sin embargo, tenemos una configuración de seguridad bastante entusiasta, así que voy a intentar lo mismo en mi versión de inicio (todavía 3.4) y ver si tengo más alegría. Mi inclinación es que mi versión VS ha sido restringida de alguna manera y las respuestas anteriores deberían ayudar. Si encuentro algo más esta noche, agregaré más detalles.
Esta es mi primera respuesta, ¡no la más técnica, me temo!
Usar pip install zipline
en Windows 8 con Python 2.7 me da el error:
Downloading/unpacking six (from python-dateutil==2.1->delorean->zipline[all])
Running setup.py egg_info for package six
Installing collected packages: blist, pytz, requests, python-dateutil, six
Running setup.py install for blist
building ''_blist'' extension
error: Unable to find vcvarsall.bat
Complete output from command C:/Python27/python.exe -c "import setuptools;__
file__=''c://users//ThatsMe//appdata//local//temp//pip-build-ThatsMe//blist//setup.py'';ex
ec(compile(open(__file__).read().replace(''/r/n'', ''/n''), __file__, ''exec''))" inst
all --record c:/users/ThatsMe/appdata/local/temp/pip-xvoky2-record/install-record.tx
t --single-version-externally-managed:
running install
running build
running build_py
running build_ext
building ''_blist'' extension
error: Unable to find vcvarsall.bat
Pregunta: ¿Cómo se puede resolver el error? Ejecutando pip install zipline[all]
da el mismo error ...
El problema aquí es la línea 292 (usando Python 3.4.3 aquí) en $python_install_prefix/Lib/distutils/msvc9compiler.py
que dice:
VERSION = get_build_version()
Esto solo busca la versión de MSVC con la que se creó su python. Simplemente reemplazando esta línea con su versión real de Visual Studio, ej. 12.0
para MSVC2013
VERSION = 12.0
arreglará el problema
ACTUALIZACIÓN: Resulta que hay una buena razón por la cual esta versión está codificada. El tiempo de ejecución de MSVC C no es necesario para ser compatible entre versiones principales. Por lo tanto, cuando utiliza una versión de VS diferente, puede encontrarse con problemas de tiempo de ejecución. Así que aconsejo usar VS 2008 (para Python 2.6 hasta 3.2) y VS2010 para (Python 3.3 y posterior) hasta que este problema esté resuelto.
La compatibilidad binaria llegará con VS 2015 ( ver aquí ) junto con Python 3.5.
Para usuarios de Python 2.7, Microsoft lanzó un compilador especial de Microsoft Visual C ++ para Python 2.7 que se puede usar sin instalar todo el VS 2008.
En su lugar, podría usar la buena easy_install zipline
.
easy_install
no es pip, pero un buen aspecto de esto es la capacidad de descargar e instalar paquetes binarios también, lo que te liberaría de la necesidad de tener VC ++ listo. Esto, por supuesto, se basa en la suposición de que los binarios fueron preparados para su versión de Python.
ACTUALIZAR:
Sí, Pip puede instalar binarios ahora!
Hay un nuevo formato binario de archivo Python ( wheel ) que se supone que reemplaza a los "huevos". Las ruedas ya son compatibles con pip
. Esto significa que podrá instalar zipline
con pip
sin compilarlo tan pronto como alguien construya la rueda de su plataforma y la cargue en PyPI.
Gracias a "msoliman" por su pista, sin embargo, su respuesta no da una solución clara para aquellos que no tienen VS2010
Por ejemplo, tengo VS2012 y VS2013 y no existen tales KEY en el registro del sistema.
Solución:
Editar archivo: " [Python_install_loc] /Lib/distutils/msvc9compiler.py"
Cambiar en la línea 224:
productdir = Reg.get_value(r"%s/Setup/VC" % vsbase,
"productdir")
a:
productdir = "C:/Program Files (x86)/Microsoft Visual Studio [your_vs_version(11/12...)]/VC"
y eso debería funcionar
Necesitas tener el bin dir de Visual Studio en tu camino. La instalación de Pip está intentando compilar algún código C.
Pasé horas investigando este vcvarsall.bat también. La mayoría de las respuestas sobre SO se centran en Python 2.7 y / o crean soluciones mediante la modificación de las rutas del sistema. Ninguno funcionó para mí. Esta solución funcionó de la caja para Python 3.5 y (creo) es la forma "correcta" de hacerlo.
Vea este enlace: describe los compiladores de Windows para utilizar con diferentes versiones de Python: https://wiki.python.org/moin/WindowsCompilers#Microsoft_Visual_C.2B-.2B-_14.0_standalone:_Visual_C.2B-.2B-_Build_Tools_2015_.28x86.2C_x64.2C_ARM.29
Para Python 3.5, descargue esto: https://www.microsoft.com/en-us/download/details.aspx?id=49983
Para mí, tuve que ejecutar C: / Archivos de programa (x86) / Microsoft Visual C ++ Herramientas de compilación / Visual C ++ x64 Native Build Tools Símbolo del sistema para que funcione. Desde ese símbolo del sistema, ejecuté "pip install django_compressor" que era el paquete particular que me estaba causando un problema, y funcionó perfectamente.
Espero que esto le ahorre a alguien algo de tiempo!
Primero, debe buscar el archivo vcvarsall.bat en su sistema.
Si no existe, te recomiendo instalar el compilador de Microsoft Visual C ++ para Python 2.7 . Esto creará vcvarsall.bat en "C: / Archivos de programa (x86) / Archivos comunes / Microsoft / Visual C ++ para Python / 9.0" si lo instala para todos los usuarios.
El problema ahora está en la función find_vcvarsall (versión) en el módulo C: /Python27/Lib/distutils/msvc9compiler.py , que está buscando el archivo vcvarsall.bat.
Después de las llamadas a la función, verá que está buscando una entrada en el registro que contenga la ruta al archivo vcvarsall.bat. Nunca lo encontrará porque esta función busca en otros directorios diferentes de donde la colocó la instalación mencionada, y en mi caso, el registro no existía.
La forma más fácil de resolver este problema es devolver manualmente la ruta del archivo vcvarsall.bat. Para hacerlo, modifique la función find_vcvarsall (versión) en el archivo msvc9compiler.py con la ruta absoluta al archivo vcvarsall.bat como este:
def find_vcvarsall(version):
return r"C:/Program Files (x86)/Common Files/Microsoft/Visual C++ for Python/9.0/vcvarsall.bat"
Esta solución funcionó para mí.
Si ya tiene el archivo vcvarsall.bat, debe verificar si tiene la clave productdir en el registro:
(HKEY_USERS, HKEY_CURRENT_USERS, HKEY_LOCAL_MACHINE o HKEY_CLASSES_ROOT) / Software / Wow6432Node / Microsoft / VisualStudio / version / Setup / VC
Donde version = msvc9compiler.get_build_version ()
Si no tiene la clave simplemente haga lo siguiente:
def find_vcvarsall(version):
return <path>/vcvarsall.bat
Para comprender el comportamiento exacto, compruebe el módulo msvc9compiler.py que comienza en la función find_vcvarsall (versión) .
Si está intentando instalar matplotlib para trabajar con gráficos en python. Prueba este enlace https://github.com/jbmohler/matplotlib-winbuild . Este es un conjunto de scripts para compilar matplotlib desde el origen en la plataforma MS Windows.
Para construir e instalar matplotlib en tu Python, hazlo:
git clone https://github.com/matplotlib/matplotlib
git clone https://github.com/jbmohler/matplotlib-winbuild
$ python matplotlib-winbuild/buildall.py
El script de construcción detectará automáticamente la versión de Python y 32/64 bits automáticamente.
Si obtiene este error en Python 2.7, ahora puede obtener el compilador de Microsoft Visual C ++ para Python 2.7 como una descarga independiente.
Si está en 3.3 o posterior, necesita instalar Visual Studio 2010 Express, que está disponible de forma gratuita aquí: https://www.visualstudio.com/downloads/download-visual-studio-vs#d-2010-express
Si tiene 3.3 o una versión posterior y usa una versión de 64 bit de python, necesita instalar el Microsoft SDK 7.1 que incluye un compilador de 64 bits y seguir las instrucciones aquí. Python PIP tiene problemas con la ruta de MS Visual Studio 2010 Express para la instalación de 64 bits en Windows 7
Simplemente porque no tiene un compilador de C ++ instalado en su máquina, verifique lo siguiente
Descargue Microsoft Visual C ++ 2008 desde esta page . Esa es una página generalmente útil de todos modos, por lo que probablemente debería marcarla como favorito. Para Python 3.3+, use MS Visual C ++ 2010 . Instalarlo.
Abra el explorador de Windows (el explorador de archivos) y busque la ubicación de ''vcvarsall.bat'' y córtelo en su portapapeles.
ejecute regedit desde la tecla de inicio de Windows. Necesitarás privilegios de administrador.
Agregue una entrada de registro a HKEY_LOCAL_MACHINE / Software / Wow6432Node / Microsoft / VisualStudio / 9.0 / Setup / VC / ProductDir (64 bit Windows) o HKEY_LOCAL_MACHINE / Software / Microsoft / VisualStudio / 9.0 / Setup / VC / ProductDir (32 bit) como se describe here .
Sugerencia : 0.9 en el directorio de registro es la versión actualmente instalada de su estudio visual, si ejecuta VS 2013, debe encontrar la ruta HKEY_LOCAL_MACHINE / Software / Wow6432Node / Microsoft / VisualStudio / 12.0 ....
En la tecla de inicio de Windows, escriba cmd para obtener un shell de comando. Si es necesario, vaya a su entorno virtual y ejecute activate.bat.
instalación de pip o lo que sea que uses para instalarlo.