Error al instalar paquetes en Python en Windows 7

Posted by in Python

Si en la entrada previa comentabamos acerca de lo fácil que es instalar nuevos paquetes a partir de su código fuente en Python, en Windows 7 a veces la cosa no es tan simple (bueno, en Windows en general).

De la misma forma que hicimos en Windows XP, intentamos instalar NumPy en un Windows 7, pero recibimos un error, tanto con “pip” como con “easy_install“.

Error con pip

Error con pip

Error con Easy_install

Error con Easy_install

Como podeis comprobar, la cosa no pinta bien! Investigamos sobre la falta de vcvarsall.bat, que puede darnos alguna pista! Según leo aquí, el problema es que python necesita compilar código y no encuentra compilador en la máquina, y claro … salta el error!

Solución 1

Una vez conocemos el problema, aquí va la primera y más rápida solución, que consiste en ir al repositorio de librerías de Python para Windows, ya compiladas y listas para instalar (en lugar de hacerlo con “pip” o “easy_install“). Como podeis comprobar, el repositorio está bastante completa!! Es solo descargar e instalar (cómo si instalaramos algún nuevo software). Esta es la solución recomendada!! y con la que menos problemas tendrás!

Solución 2

Sin embargo, existe otra alternativa, y es compilar la librería usando GCC, tal y como describen aquí. No la he probado, pero … la pongo por si te quieres entretener un rato!!

La tercera solución (inviable en Windows 7)

Esta tercera solucion la he sacado de aquí: http://ultrainfinitum.blogspot.com.es/2012/12/python-error-unable-to-find-vcvarsallbat.html. Requiere instalar MinGW, (en mi caso, en c:\mingw) y seguir los siguientes pasos:

  • Inicio / Buscar “editar variables del sistema“, y en “Variables de entorno“, localizar PATH e incluir c:\mingw\bin
PATH para MinGW

PATH para MinGW

  • Hay que acceder a la ruta de Python, al directorio c:\python27\lib\disutils y crear (en caso de que no exista) el fichero distutils.cfg con el siguiente contenido:

[build]

compiler=mingw32

  • y por último, hay que poner la siguiente instrucción en la librería a compilar
    setup.py install build --compiler=mingw32

En mi intento por seguir esta tercera vía, me topo con que es … imposible. Según leo es stackoverflow, la segunda respuesta “invita” a ir a la primera solución, pero aún queda una esperanza de una versión de Python para temas científicos: http://spyder-ide.blogspot.de/2012/08/scientific-python-distribution-for.html.

En definitiva …

Que la mejor de las soluciones viene siendo la primera opción, siempre que se pueda. El repositorio incluye las librerías más populares, por lo que dificilmente no encontraremos lo que estamos buscando.

De todas formas, sí es cierto que algunas librerías las he podido descargar usando tanto pip como easy_install (supongo que aquellas que no requerían compilación).

Google+ Comments - Comentarios Google+