El intérprete y distribuciones de Python


La experiencia personal de las distintas distribuciones de Python y los pormenores de sus instalaciones.


Índice

  1. Instalación y validación
    1. Instalación
      1. Linux
      2. OS X/macOS
      3. Windows
    2. Validación de la versión
    3. Convivencia de versiones
    4. Desinstalación
  2. Configuración
    1. Shell interactivo
  3. Troubleshooting

Instalación y validación

Instalación

Antes de proceder con la instalación inicial o tratar de hacer una actualización conviene tener presente un punto importante. Dada la falta de compatibilidad retroactiva de Python 3.x+ con Python 2.7-, y que muchos scripts de administración pueden tener una dependencia específica sobre alguna versión en particular, no es buena idea cambiar la versión por defecto de Python del sistema operativo cuando ésta no es 3.x+. Antes de proceder con la instalación, lea todo lo que yo he anotado en las descripciones de cada sistema operativo aquí indicados y la declaración de responsabilidad de este sitio y valide que versión pudiera ya tener instalada.

En general, las alternativas para hacerse de Python son:

  • Incluido como parte de la distribución del sistema operativo, para lo que no hay que hacer nada extra, sólo usarlo.
  • Incluido como parte (por ser necesario para que funcione) de algún otro software. Por ejemplo, Dataiku. En estos casos, aunque éste pueda ser usado desde otros paquetes, aplicaciones, utilerías o shell del sistema operativo se recomienda no hacerlo ya que esa distribución de Python es para el software que la incluye y sus propósitos.
  • Instalarlo como una utilería o aplicación más del sistema operativo, lo que se consigue en general desde el proyecto original, como alguna distribución. Aquí se considera que la instalación deja al intérprete de Python accesible a todos los usuarios del computador o sólo para uno, pero en ambos casos se accede sin tener que hacer nada adicional (en otras palabras, es el que se accede por defecto).
  • A través de un administrador de paquetes como es el caso de Hombrew o Macports para macOS, o Chocolatey para Windows. Para este caso también, se considera que se deja un intérprete por defecto pero la instalación es más fácil de administrar que aquellas que hacen uso de un instalador.
  • A través de un administrador de entornos virtuales (como es Anaconda o mini Conda). Está se considera la opción más adecuada si se busca y tener varias versiones de Python y diferentes espacios de desarrollo aislados y cada uno con propio conjunto de bibliotecas.
  • Una última alternativa es la de descargar el código fuente del intérprete y construirlo (llevar a cabo la compilación) desde cero. El usuario decide si la instalación debe ser a nivel del sistema operativo, para la cuenta de usuario desde donde se hace la compilación o se queda en un directorio específico no necesariamente incluido en la variable de entorno PATH.

Linux

En general, para la mayoría de los unices, la instalación de Python se reduce a hacerlo con el administrador de paquetes del sistema operativo o a descargar el tarball y compilarlo (en otras palabras crearlo desde scratch, desde cero). Para esto se requiere contar con las herramientas de desarrollo (ya sea incluidas desde la instalación del sistema operativo o instaladas posteriormente, e.g. Autotools) más algunas librerías (necesarias para la compilación del intérprete o para la ejecución de los programas).

Contando con las herramientas de desarrollo y las librerías necesarias se procede de la siguiente forma (de faltar alguna, está será señalada en el proceso de configuración o compilación; las necesarias para la ejecución de los programas serán notadas hasta entonces, en run-time):

  1. Se descarga la versión requerida desde el sitio de Python, en algún directorio de trabajo. Si se emplea la línea de comando, por ejemplo:
    spacerspacer
    $ wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
    $ tar -zxvf Python-3.5.1.tgz
    spacer
    spacer
  2. Cambiarse al directorio creado con la extracción del tarball.
  3. Ejecutar:
    spacerspacer
    $ ./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
    ...
    $ make && make altinstall   # sudo su si aparecen errores de permisos.
    spacer
  4. De los posibles errores que pueden surgir en el último paso:
    • Permisos.  A veces ejecutar el comando en forma privilegiada con sudo puede no ser suficiente y uno deber hacerlo directamente desde root.
    • Librerías faltantes. Durante el proceso de compilación, ligado y distribución de productos pueden aparecer avisos de algunas librerías de terceros que es necesario instalar antes.

Como ya mencioné, un punto importante a tener presente es que, dada la falta de compatibilidad retroactiva de Python y que muchos scripts de administración pueden tener una dependencia específica sobre alguna versión en particular, no es buena idea cambiar la versión por defecto de Python del sistema.

Mac OS X/OS X/macOS

Hay varias formas de instalar Python en Mac, de acuerdo con la distribución o instalador empleado. Todas estas son adicionales y alternativas a la que viene incluida con el sistema operativo.

macOS 13

Si bien la instalación de Python en macOS siempre ha sido simple, la dependencia de Python 2.7 finalmente removido del sistema operativo, la instalación de nuevas versiones es

macOS 12

Cuando elaboraba estas notas y la version 12 de macOS era la más reciente, las descargas del sitio de python.org se ofrecían como «Intel» y «Universal2» (desde OS X 10.9 y en adelante) hasta Python v3.9.9. A partir de la versión 3.10 sólo se tenían para «Universal2«.

La dependencia de Python 2.7 finalmente fue retirada por Apple con macOS 12.31.

OS X 10.9macOS 10.15

La instalación de un intérprete de Python en las versiones del sistema operativo que van de la 10.9 a la 10.15 se puede hacer tanto por un administrador de paquetes como por la de alguna distribución (e.g. Anaconda, Miniconda, o python.org). Cabe señalar que los administradores de paquetes como Macports, Homebrew y Miniconda están orientados a la instalación de componentes para ser usados por línea de comando. Anaconda provee elementos gráficos basados en el uso de un browser.

Mac OS X 10.7

En lo que respecta a Mac OS X 10.7 «Lion«, al ser un sistema operativo ya no soportado (al momento de la elaboración de estas notas), debe buscarse la última versión compatible (de Python o del instalador/administrador de paquetes) en los archivos del sitio (archives) de los proyectos abajo indicados.

Windows

Windows 10

Para el caso de Windows, las instalaciones que se han hecho han sido a través de un instalador, tanto para la distribución de Miniconda, como con la que se obtiene desde python.org. Las opciones por defecto de los instaladores se han tomado.

Validación

Una forma de saber simplemente si Python se encuentra instalado es ejecutarlo:

$ python

Otra sería hacer uso del comando unix which:

$ which python

Sin embargo, esto no nos indica cuántas versiones podemos tener instaladas. Un locate o find pueden usarse pero regresarán cuanta cosa encuentren con el nombre «python». Una alternativa es preguntar por los conocidos nombres de los intérpretes, que usando BASH, sería por ejemplo:

$ for x in 2 3
> do
> for y in 0 1 2 3 4 5 6 7 8 9
> do
> which -a python$x.$y
> done
> done
/opt/local/bin/python2.7
/usr/bin/python2.7
/usr/local/bin/python3.6
$

Para validar qué versión responde a la invocación, emplear los comandos:

Python 2.4:

$ python -c 'import sys; print(sys.version)'

Python 2.5+:

$ python --version

o

$ python -V

Debe tenerse presente que esto solamente indica la versión activa y que se puede contar con varias versiones instaladas. Para conocer la versiones o implementaciones (32 ó 64 bits) en el equipo puede recurrirse a:

$ updatedb               # sudo si se requieren permisos de administración
$ locate site.py

En el caso de los unices, usualmente la versión de distribución de Python del sistema se encuentra instalada en /usr/bin y se pueden tener scripts del sistema operativo que dependan de éste y seleccionados por la línea inicial #! /usr/bin/env python, así que jugar con estas referencias puede romper la habilidad del sistema operativo o alguno de sus administradores para el manejo y control de versiones de software. Jugar con el orden de los directorios en la variable PATH puede también tener algunas consecuencias (ya que usualmente las actualizaciones de Python son colocadas en /usr/local/bin).

Si la instalación se hizo a través de un administrador de paquetes puede recurrirse a ésta para validar las versiones instaladas, por ejemplo

$ pip list

o

$ conda list

Convivencia de versiones

La instalación de  una versión adicional puede hacerse de varias formas, mucho depende si se está o no empleando un administrador de paquetes o versiones. Por ejemplo, de ser ese el caso (el que se cuente con un administrador de versiones), distintos comandos deberán ser empleados. Abajo algunos ejemplos (sudo si se requieren permisos de administración):

$ yum -y update python     
o
$ port upgrade python27    

Si el administrador es capaz de manejar y administrar las distintas versiones que se tengan instaladas no hay más que decir. De otra forma uno puede manualmente mantener las actualizaciones haciendo la instalación como ya se describió o hacer uso de alguna facilidad del administrador de versiones del sistema operativo o de algún administrador de configuraciones.

La garantía y forma de mantener varias versiones de Python es mantenerlas separadas, sin librerías comunes, sin dependencias entre éstas. Algunas veces la misma distribución ayuda, por ejemplo para el caso de la provista por MacPorts, encontramos que tras la instalación o actualización el administrador de paquetes señala:

  ...
  python27 has the following notes:
    To make this the default Python or Python 2 (i.e., the version run by the
    'python' or 'python2' commands), run one or both of:
    
        sudo port select --set python python27
        sudo port select --set python2 python27
  ...

Desinstalación

Para saber más sobre el retiro o acciones de componentes, ver las entradas en el blog de este sitio que se listan en las referencias al final de esta página.

La principal preocupación…

Para el caso de las mac, la distribución de Python proporcionada por Apple se encuentra instalada en /System/Library/Frameworks/Python.framework y /usr/bin/python. Nunca deben ser modificadas ni eliminadas, ya que están controlada y utilizada por Apple y software de terceros.

Recuerde que si elige instalar una versión más reciente de Python, ya sea desde python.org, de algún otro distribuidor o una compilada y adecuada localmente, deberá tener dos instalaciones de Python, diferentes pero funcionales, en su computadora. Por lo que será importante que sus rutas y usos sean coherentes con lo que se desea hacer.

Configuración

Troubleshooting


Referencias

Desinstalación de Python

  1. Eduardo René Rodríguez Ávila, «Adiós a Python 2.7«, blog. URL: https://eravila.wordpress.com/2022/05/14/adios-a-python-2-7-1/.
  2. «How to Uninstall Python on Mac«, macupdate.com, web. Published: 2022.07.06; visited: 2022.08.15. URL: https://www.macupdate.com/how-to/uninstall-python.

 

Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Avila
Creación: 2016.04.07
Última actualización: 2023.03.15
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.