Python – Dia 1

Con el propósito de mejorar mis capacidades de redacción, he decidido hacer publicaciones durante 100 días sobre tecnologías. Primariamente, mis opiniones y como hacer funcionar algo.

Empezaré con Python.

¿Por qué python? Pues mi trabajo en los últimos años se basa en automatización. Flujos, Procesos, Tareas, RPA, Ansible, Github Actions, Sistema de cajitas genéricas, etc. Y primariamente estos sistemas funcionan sobre python.

¿Qué es python?

Python es 3 cosas.

  1. Un lenguaje de programación. Fácil de escribir y configurar
  2. Un runtime – motor de ejecución, que ejecuta (valga la redundancia) el lenguaje de programación. Instrucción por instrucción. Dentro de un sistema.
  3. Un culto.

¿Cómo funciona?

Lo primero que necesitas es tener una versión del motor (runtime) de python en tu sistema.

Si es windows, primariamente se instala desde chocolatey o con su instalador tipo windows de su pagina oficial.

Si es linux, primariamente lo puedes conseguir del gestor de paquetes, por ejemplo apt-get install python.

Si es mac, Desde el instalador de la web oficial.

Si es java, usando Jython como una dependencia

Si es .net, usando IronPython como una dependencia.

Si es kubernetes, usando tu configmap o Helm o etc.

Si es docker, usando el manejador de tu imagen de docker como linux.

Si te gusta trabajar con datos, pues descargando anaconda e instalando en windows/mac/linux.

Esto va a lograr que puedas ejecutar el siguiente comando.

python

¿Cómo funciona?

Una vez instalado. Y una vez abierto la terminal dinámica. Se puede empezar a escribir expresiones dentro de la misma y programar. Básicamente, lo que seas lo suficientemente creativo para hacer.

¿Y ya?

Sí. Sin embargo, es poco productivo solo funcionar así. Lo ideal es extraer todo tu código a muchos archivos, y dependencias. Tuyos o de otras personas y crear un juego de instrucciones en un archivo llamado.

archivo.py

y luego ejecutarlo con python archivo.py.

¿Cómo gestionamos librerías de otros?

Esto también es fácil. Se necesita un manejador de paquetes. El más conocido es PIP, pero también existe Conda.

Otras personas que publicaran sus paquetes de código, en PIP, te va a permitir instalarlos en tu sistema local. Y usarlos dentro de tu entorno interactivo. Y así hacer acciones más completas y software más complejo.

Primariamente, la ciencia de datos existe sobre esto. En un software llamado Jupyther notebooks.

¿Algo para cerrar?

NUNCA. Instalen dentro de su Python todas las dependencias. Se debe usar una característica de python llamados ‘ambientes virtuales’

Con estos, se pueden crear contenedores o carpetas, para cada aplicación. Con sus propias dependencias. Con sus propias versiones.

Lo cual es muy práctico, ya que permite aislar y evitar el infierno de dependencias.

¿Qué es el infierno de dependencias?

Básicamente, si tu sistema operativo es linux, hay una alta posibilidad que el sistema operativo use python para algo. Y use librerías específicas con versiones específicas.

Si se empieza a desarrollar un sistema, y con pip se actualiza todas las versiones instaladas. Incluye las del sistema.
Tu nuevo software va a querer la versión que tú definas (probablemente la más nueva)
Y el sistema operativo una estable o específica.

Y cada programa va a empezar a competir por cada una. Causando un ciclo infinito de problemas.