Una de las cosas que no llego a comprender es la rigidez que presenta Apple en algunas ocasiones cara a los usuarios más avanzados del sistema operativo OSX. El interprete de Python viene instalado por defecto en nuestros Mac con una versión 2.7.X por lo que si queremos actualizar Python en OSX a una versión 3.x no lo tenemos nada fácil.
Dado que Apple no lo actualiza de forma automática, en este nuevo tutorial veremos todos los pasos necesarios para actualizar la versión de Python que viene por defecto instalada en nuestros Mac.
Paso 1. Instalar la última versión de Python en OSX
- Nos vamos a python.org y buscamos la versión 3.x mas reciente en esta Web.
- Abrimos el fichero DMG y ejecutamos el programa de instalación (
Python.mpkg
) - Esto nos instalará la versión de Python en
/Library/Frameworks/Python.framework
- Tendremos que asegurarnos que no existan otras versiones de Python ya instaladas ya que puede dar lugar a incompatibilidades no muy agradables.
- Nuestro Mac sigue ejecutando el ejecutable
python
2.X en el directorio/usr/bin/python
, por lo que tendremos que hacer algunos pasos adicionales para actualizar realmente Python en el sistema.
¡Importante! Antes de continuar con los siguientes pasos, los usuarios de OSX el Capitan tendremos que deshabilitar SIP (System Integrity Protector). Para ello:
Reiniciamos en Modo Recuperación (presionando
Cmd+R
en el arranque) y accedemos al terminal.En el terminal, ejecutamos el siguiente comando:
csrutil disable
Reiniciamos el Mac y realizamos los pasos del 2 en adelante de este tutorial
Necesitaremos nuevamente reiniciar en Modo Recuperación, abrir el terminal y escribir el siguiente comando:
csrutil enable
para volver a habilitar SIP.
Paso 2. Mover Python al directorio correcto
-
Para evitar posibles incompatibilidades y problemas borraremos del sistema la version «antigua» 2.7 que tenemos instalada ejecutando el comando
rm
de la siguiente manera:
$ sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
-
Movemos la instalación de Python 3.X al directorio correcto. En mi caso he instalado la 3.5 por lo que ejecutaremos el comando
mv
como sigue a continuación:
$ sudo mv /Library/Frameworks/Python.framework/Versions/3.5 /System/Library/Frameworks/Python.framework/Versions
Paso 3. Reparar el grupo
-
Configuramos el grupo a
wheel
que es el mismo que tienen las versiones previas de Python en nuestro equipo:
$ sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.5
Paso 4. Actualizar el enlace Current
-
Existe un enlace simbólico del sistema que necesitamos actualizar para que todo vuelva a funcionar correctamente. Para hacer esto primero lo elmiminamos con el comando
rm
de la siguiente manera:
$ sudo rm /System/Library/Frameworks/Python.framework/Versions/Current
-
Después lo volvemos a crear mediante el comando
ln
para que «apunte» a la versión 3.5 de Python que es la que hemos instalado nosotros:
$ sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5 /System/Library/Frameworks/Python.framework/Versions/Current
Paso 5. Reparar el directorio /usr/bin
-
Los archivos ejecutables
pydoc
,python
,pythonw
ypython-config
no están vinculados al directorio de la instalación de Python que hemos realizado pero deben residir en/usr/bin
. Si no actualizamos estos ficheros y por ejemplo ejecutamos el comandopython
en el terminal, se va a seguir ejecutando la versión antígua 2.7.X. -
Por lo tanto, vamos a eliminar los antiguos archivos ejecutables de Python con el comando
rm
$ sudo rm /usr/bin/pydoc
$ sudo rm /usr/bin/python
$ sudo rm /usr/bin/pythonw
$ sudo rm /usr/bin/python-config
-
Vamos a reemplazar los archivos ejecutables por enlaces simbolicos a los nuevos ejecutables recien instalados con el comando
ln
$ sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3 /usr/bin/pydoc
$ sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 /usr/bin/python
$ sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/pythonw3 /usr/bin/pythonw
$ sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.5/bin/python-config3 /usr/bin/python-config
Paso 6. Actualizar el fichero .bash_profile
-
Usaremos nuestro editor de texto favorito para modificar el fichero oculto
~/.bash_profile
. Si queremos tener la posibilidad de ejecutar las utilidades de Python como por ejemploIDLE
sin escribir la ruta (path) cada vez, editaremos el PATH para Python de la siguiente manera:
Setting PATH for Python 3.5
The orginal version is saved in .bash_profile.pysave
PATH="/System/Library/Frameworks/Python.framework/Versions/3.5/bin:$ {PATH}"
export PATH
-
Si todo lo anterior lo hemos realizado correctamente, cuando ejecutemos el comando
python
en la terminal de OSX veremos que ahora ya está usando la versión 3.5 de Python en OSX que hemos instalado. La siguiente imagen muestra el aspecto que presenta ahora terminal:
Enlaces interesantes que acompañan a este artículo:
- Download the latest version for Mac OS X
- Do I need to install pip
- Pip (administrador de paquetes)
- PIP install and Python path
- Enlace simbólico
- Instalar el gestor de paquetes pip para Python
Espero que os haya gustado el tutorial sobre cómo actualizar Python en OSX. En ese caso solo os pido que lo compartáis con vuestros amigos en redes sociales para que pueda llegar a más gente que seguro que está interesado en leerlo. Como siempre, muchas gracias por vuestra atención y nos leemos en un próximo artículo!!
Adiós, os!!