Librería estándar (Python)

Python Standard Library

¿Qué es la librería estándar de Python?

La librería estándar ofrece una gran variedad de módulos que realizan distinto tipo de funciones. Por ejemplo, el módulo OS ofrece las típicas funciones que permiten interactuar con el sistema operativo como decirnos en qué directorio estamos, cambiar de directorio, las funciones de ayuda dir(os) o help (os), etc, el módulo math que ofrece funciones trigonométricas, logarítmicas, estadísticas etc. También hay módulos para acceder a internet y procesar sus protocolos con urllib.request, para descargar datos de una URLs y smtplib, para enviar correos; o módulos como datetime, que permiten manejar fechas y tiempos, módulos que permiten comprimir datos, o módulos de medida de rendimientos.


Sin embargo, las aplicaciones de Python muchas veces usan paquetes y módulos que no forman parte de la biblioteca estándar, de hecho, Python está diseñado para facilitar esa interoperabilidad. El problema, habitual en los entornos de código abierto, es que muchas veces las aplicaciones necesitan una versión específica de una librería, debido a que dicha aplicación requiere que un bug particular haya sido solucionado o bien la aplicación ha sido escrita usando una versión obsoleta de la interface de la librería.


Esto significa que tal vez no sea posible que nuestra instalación de Python cumpla los requerimientos de todas las aplicaciones. Si la aplicación A necesita la versión 1.0 de un módulo particular y la aplicación B necesita la versión 2.0, entonces los requerimientos entran en conflicto e instalar la versión 1.0 o 2.0 dejará una de las aplicaciones sin funcionar. La solución a este problema es crear un entorno virtual, un directorio que contiene una instalación de Python de una versión en particular, además de unos cuantos paquetes adicionales. De esta forma, diferentes aplicaciones pueden usar entornos virtuales diferentes. Para resolver el ejemplo de requerimientos en conflicto citado anteriormente, la aplicación A puede tener su propio entorno virtual con la versión 1.0 instalada mientras que la aplicación B tiene otro entorno virtual con la versión 2.0.