Cómo instalar Python en macOS usando Homebrew
Antes de entrar de lleno a las bibliotecas de Machine Learning, procesamiento de datos y todos lo necesario para trabajar en lo que nos interesa, debemos instalar Python. En mi caso, voy a vamos a instalar Python 3 en macOS Sierra usando Homebrew siguiendo las instrucciones de la Guía de Python.
Un poco de limpieza antes de partir
Mi computador tenía versiones anteriores de Python instaladas usando el instalador oficial de python.org. Si bien esto funciona, cuando se trabaja con distintas dependencias y versiones de python esto se vuelve un poco más enredado y es preferible instalarlo vía Homebrew. Por sanidad mental, antes de partir, eliminé Python según las instrucciones de Onur Güzel.
PRECAUCIÓN: Estos comandos eliminarán todas las versiones de Python instaladas con paquetes. Las instalaciones instaladas por el sistema no se verán afectadas.
Desde una terminal, ejecutar los siguientes comandos:
1 2 3 |
$ sudo rm -rf /Library/Frameworks/Python.framework $ cd /usr/local/bin $ ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm |
Y luego borrar la carpeta de aplicación de la versión correspondiente (en mi caso, 3.1)
1 |
$ sudo rm -rf "/Applications/Python x.y" |
Instalación de Homebrew
Para poder instalar Python necesitamos contar con un compilador de C. La forma más fácil de hacer esto es ejecutando xcode-select --install desde una línea de comando o instalando XCode desde el AppStore.
Una vez hecho esto, instalaremos Homebrew según las instrucciones en su sitio web. Esto es bastante simple, abrimos una terminal y ejecutamos el instalador indicado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ==> This script will install: /usr/local/bin/brew /usr/local/share/doc/homebrew /usr/local/share/man/man1/brew.1 /usr/local/share/zsh/site-functions/_brew /usr/local/etc/bash_completion.d/brew /usr/local/Homebrew ==> The following existing directories will be made group writable: /usr/local/include /usr/local/lib/pkgconfig ==> The following existing directories will have their owner set to fmallea: /usr/local/include /usr/local/lib/pkgconfig ==> The following existing directories will have their group set to admin: /usr/local/include /usr/local/lib/pkgconfig ==> The following new directories will be created: /usr/local/Cellar /usr/local/Homebrew /usr/local/Frameworks /usr/local/opt /usr/local/sbin /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var |
El script de instalación nos muestra los cambios a hacer y nos dará la opción de aceptar y rechazar la instalación. Como no hay nada extraño en esto, le damos aceptar (return/enter).
Si todo sale bien, solo nos falta agregar el path de Homebrew a la variable PATH de nuestro ~/.profile para poder ejecutar los comandos desde cualquier ubicación en nuestro sistema. Para esto, agregamos la siguiente línea al final de este archivo.
1 |
export PATH=/usr/local/bin:/usr/local/sbin:$PATH |
Instalación de Python 3
Ya hicimos la parte difícil, ahora solo nos falta instalar python y para ello ejecutamos el siguiente comando desde una terminal y esperamos un par de minutos a que termine.
1 |
$ brew install python3 |
¿Y ahora qué?
Al instalar Homebrew, también se instala Setuptools y pip. Setuptools permite descargar e instalar software python via web con un simple comando (easy_install). Por otra parte, pip es una herramienta para instalar y gestionar paquetes python que, según la guía, es superior a easy_install en varios aspectos, pero aun no entraremos en ese tema.
Finalmente, debieramos familiarizarnos con los entornos virtuales (también conocidos como “virtualenv”). Estos permiten trabajar en múltiples proyectos con distintas dependencias mediante la creación de espacios de trabajo virtuales para Python. Si quieres saber más acerca de ellos, y te lo recomiendo, puedes visitar la Hitchhicker’s Guide to Python aquí.
Recuerda que si tienes cualquier pregunta déjalo en los comentarios y haré lo posible por responder lo antes posible. Hasta la próxima!