jueves, 12 de octubre de 2017

Python 34 en Windows 10

Hola a todos, parto esta entrada contándoles por qué motivos estoy escribiendo de un problema de Python en un entorno Windows 10. No sé si les había comentado o no, pero en la empresa en la que trabajo (al menos en mi área), utilizamos principalmente el entorno de Microsoft. Para hacer unos análisis de minería de datos instalamos un IDE que se llama Orange y que está basado en Python. Al instalar este programa, viene de "regalo" la instalación de Python 3.x, sin embargo hay varias características para las que se requiere que se instalen módulos o bibliotecas de Python independientes (como los controladores para acceder a bases de datos).

Ahí es cuando inicia esta historia, ya que quería conectar una base de datos mysql/postgre a Orange y el "conector" no venía instalado, así que me vi en la obligación de tener que instalarlo. Creo que de haber sido Linux, no habría tenido tantos problemas instalando/encontrado la solución (ya que aún no resuelvo cómo hacer que Orange reconozca el conector que instalé).

Para partir, tuve que instalar pip, que fue lo menos terrible de todo, pero para ello tuve que setear una Variable de Entorno de Windows 10. Con lo anterior pude utilizar Python (y luego pip) desde la PowerShell de Windows, ya que al instalar Orange, éste no la seteó la variable. En la imagen a continuación se pueden ver las 2 variables de Entorno que tuve que incluir: PYTHON_HOME y PYTHONPATH.


PYTHON_HOME tiene el directorio donde se instaló python (en mi caso C:\Python34), PYTHONPATH aparte de tener el directorio donde está instalado python, tiene los directorios dónde están las dlls, algunos paquetes internos, scripts, entre otras cosas.

Luego de realizar lo anterior y de descargar get_pip.py desde https://pip.pypa.io/en/stable/installing/ , se ejecuta el siguiente comando desde el powershell y en el directorio donde quedó el archivo descargado (lo del directorio es importante, o dará error):

python get-pip.py

Luego de pasar esa etapa, podremos utilizar pip para instalar algunos programas. Otros (como el que tenía que instalar yo), no son tan simples, ya que me encontré con el siguiente mensaje de error:

Error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)

De todos los foros que visité, y después de instalar varias versiones de VisualStudio, la única que no lanzaba el error indicado, fue Microsoft Visual Studio 10, la cual pueden descargarla de la página de Microsoft link acá. Para poder acceder, tendrán que tener (o crearse) una cuenta, con la cual podrán descargar algunas versiones gratis (yo descargué Visual Studio 2010 Express).

Una vez instalado, busquen el path donde se instaló y ya que deberán crear una variable de entorno para que pip pueda encontrar el archivo vcvarsall.bat. En mi caso, el nombre de la variable es VS100COMNTOOLS, y el contenido es C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools

Como advertencia, tengo instalada la versión de python 3.4, por toda la documentación que leí, para versión 2.7 de python, deben setear otra variable VS90COMNTOOLS, les dejo el link de referencia acá, en inglés.

Luego de lo anterior, por fin logré instalar el paquete que solicitaba Orange psycopg2 utilizando el comando pip. Claro que este logro fue empañado por el hecho de que Orange aún no reconoce el módulo instalado y a la fecha (11/10/2017), no he logrado dar con la solución.

De momento dejaré esta entrada en este punto, para evitar escribir algo que mi memoria ya deje estar seguro de cómo se resolvió el problema. En cuanto haya resuelto el problema planteado, actualizaré esta entrada.

Si alguien ya logró resolverlo, por favor le solicito dejar un mensaje por acá para compartirlo con el universo (o al menos conmigo, ya que se lo agradeceré).

Espero que les haya servido y estamos al habla.

Javiera