A nivel sistema y a nivel usuario (2)

Tras la instalación de Python 3.12.3 haciendo uso del instalador provisto por python.org1 hay algunas cosas que conviene resaltar a fin de entender (y posibles ventajas de2) la instalación de Python como aplicación en macOS.

Como se señala en [2]:

Note On macOS 10.8-12.3, the Apple-provided build of Python is installed in /System/Library/Frameworks/Python.framework and /usr/bin/python, respectively. You should never modify or delete these, as they are Apple-controlled and are used by Apple- or third-party software. Remember that if you choose to install a newer Python version from python.org, you will have two different but functional Python installations on your computer, so it will be important that your paths and usages are consistent with what you want to do.

La instalación hecha con el paquete descargado desde python.org crea el directorio correspondiente a la versión que se busca instalar en /Library/Frameworks/Python.framework/Versions y enlaces desde /usr/local/bin a éste2. Con esto se logra la convivencia de versiones (incluida y posteriormente descargadas)

En el foro de usuarios de Apple vi una respuesta3 que señala que /usr/bin/python3 no es un interprete de Python (supongo que lo que uno se encuentra en un equipo en el que nunca se ha usado Python) sino un proxy que valida la presencia del intérprete y entonces procede a solicitar la instalación de las Command Line Tools de Xcode. En otra respuesta4 a otra pregunta, leía de la ruta ~/Library/Python/3.9 que Xcode genera. En mi caso, a usr/bin/python3 --version responde con 3.9.6 pero en $HOME/Library/Python aparece un directorio 3.8.

Tratando de ver el enredo que tengo con estas versiones— y posible «cascajo» (residuos) de (des)instalaciones previas —, eché mano de un pequeño script que hace tiempo usé y coloqué en la página de Python dedicada a los intérpretes y sus instalaciones, agregándole ahora dos líneas al inicio:

 which -a python
 which -a python3
 for x in 2 3
   do
        which -a python$x
        for y in 0 1 2 3 4 5 6 7 8 9
        do
             which -a python$x.$y
        done
   done

y que con lo que actualmente tengo en $PATH, obtuve:

/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
/opt/Homebrew/bin/python3
/usr/local/bin/python3
/usr/bin/python3
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
/opt/Homebrew/bin/python3
/usr/local/bin/python3
/usr/bin/python3
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
/usr/local/bin/python3.7
/opt/Homebrew/bin/python3.9

Observando los resultados vemos que no hay versión 2 y que podemos mejorar y limitar la búsqueda a:

for p in $(which -a python3)
do echo $p "-" $($p --version)
done
for y in 0 1 2 3 4 5 6 7 8 9
do if [[ $(which -a python3.$y) ]]
      then for p in $(which -a python3.$y)
           do echo $p "-" $($p --version)
           done
      fi
done

para obtener:

/Library/Frameworks/Python.framework/Versions/3.7/bin/python3 - Python 3.7.9
/opt/Homebrew/bin/python3 - Python 3.12.3
/usr/local/bin/python3 - Python 3.12.3
/usr/bin/python3 - Python 3.9.6
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 - Python 3.7.9
/usr/local/bin/python3.7 - Python 3.7.9
/opt/Homebrew/bin/python3.9 - Python 3.9.18

Las instalaciones de Homebrew, me parece, se deben a las actualizaciones de este administrador de paquetes quizás por alguna de las bibliotecas instaladas. Las de Conda no aparecen porque al momento de hacer este ejercicio apuntaba al entorno base en $PATH; y también ya mencioné la de Dataiku. Por lo que mi desorden en realidad sólo se limita al Python de /usr/bin y lo que hay en $HOME/Library/Python.

Referencias

  1. «Python 3.12.3«, python.org, web. Released: 2024.04.09; downloaded: 2024.04.28. URL: https://www.python.org/downloads/release/python-3123/.
  2. Bob Savage, «5. Using Python on a Mac«, python.org, web. Updated: 2024.04.27; visited: 2024.04.27. URL: https://docs.python.org/3/using/mac.html.
  3. «Do I have Python and if so do I need it?«, discussions.apple.com, web forum. Asked: 2024.02.15; answered: 2024.02.15; visited: 2024.04.28. URL: https://discussions.apple.com/thread/255478772.
  4. «Python accidentally deleted – Sonoma 14.2.1«, discussions.apple.com, web forum. Asked: 2024.02.13; answered: 2024.02.13; visited: 2024.04.28. URL: https://discussions.apple.com/thread/255475080.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.