Módulos y Paquetes con Python
Podemos encontrar módulos y paquetes en la biblioteca estándar de Python, los cuales brindan acceso a funciones del sistema operativo, por ejemplo entrada y salida (E/S) de archivos, que de otra manera serían inaccesibles para los programadores. Así también, módulos escritos que brindan soluciones estandarizadas para muchos problemas que ocurren en programación diaria.
En este apartado veremos en detalles la interacción con los módulos y paquetes de Python en Windows.
Table of Contents
Toggle¿Qué son los módulos y paquetes?
Un módulo es un archivo de Python cuyos objetos (funciones, clases, variables, constantes, etc.) pueden ser accedidos desde otro archivo. Mientras que un paquete es una carpeta que contiene varios módulos. Python incluye una inmensa cantidad de estos nativamente.
Algunos módulos están diseñados explícitamente para fomentar y mejorar la portabilidad de los programas al abstraer los aspectos específicos de los sistemas operativos, creando una interfaz neutral a la plataforma en donde corre el intérprete.
Algunos de los módulos más empleados son:
Módulos Matemáticos
math – Funciones Matemáticas
random – Generación de números aleatorios
statistics – Funciones de estadística básica
Módulos genéricos para el SO y Servicios
os – Interfaces para interactuar con el sistema de archivos.
time – Tiempo y conversiones.
sys – Parámetros y funciones vinculadas con el intérprete / SO.
subprocess – Procesos, ejecuciones, etc.
shutil – Manipulación de alto nivel en el sistema de archivos
Los módulos mencionados anteriormente suelen ser muy usados para trabajos de scripting con ciberseguridad o networking.
Importar módulos y paquetes
Cuando importamos un módulo, estamos indicándole a Python que queremos hacer uso de algún objeto o funcionalidad dentro del mismo. Para ello, se usa la palabra reservada import. Una vez que un módulo ha sido importado, se puede acceder a sus definiciones a través del operador punto.
import math
math.sqrt(25)
Out:
5.0
Aunque se puede importar módulos, donde y cuando quieras, se recomienda como buena práctica que lo hagamos al principio del programa.
Existe otra manera de usar una característica puntual de un módulo, es con la sentencia from. Al usar la forma from módulo import objeto le decimos a Python cuáles objetos queremos importar de un módulo, para que de esta manera, se incorporen a nuestro programa como cualquier otro definido. Con este procedimiento, no es necesario usar el nombre del módulo como prefijo.
from math import sqrt
sqrt(9)
Out:
3.0
Notar que de esta forma solo estamos trayendo a la función sqrt() y no podemos usar otras funciones/objetos del módulo porque solo trajimos una puntualmente.
Podemos darle una vuelta más a la forma from modulo import * con asterisco al final. De esta manera estamos incorporando “todas” las funcionalidades del módulo sin la necesidad nuevamente de usar el punto para acceder.
from math import *
sqrt(25)
Out:
5.0
pi
Out:
3.141592653589793
Algunos ejemplos
Veamos un ejemplo más completo sobre este módulo:
Como vemos, no solo hemos importado math y sus funcionalidades, sino también el módulo random que, junto con la funcion randit(), me permite imprimir en pantalla cualquier número al azar entre los valores dados. Con print(pow(10, 2)) estamos elevando al cuadrado a 10, es decir: 10**2
También es posible importar los módulos bajo un alias que haga más fácil referirse a ellos. Muchos módulos se suelen importar bajo un alias standard, que no es obligatorio, pero es el que la comunidad usa. Por ejemplo:
import tkinter as tk
El módulo tkinter se usa para el desarrollo de aplicaciones de escritorio. Esta librería facilita el posicionamiento y desarrollo de una interfaz gráfica de escritorio con Python.
Creación de módulos
Veamos esto con algunos ejemplos. El siguiente archivo llamado mi_modulo.py contiene la función def ejemplo1().
def ejemplo1():
print(«Esto es un ejemplo de FUNCION»)
Desde un archivo, o desde nuestra consola, en la misma ubicación que mi_modulo.py, podemos importarlo para acceder a dicha función vía la palabra reservada import.
import mi_modulo
mi_modulo.ejemplo1()
Out:
Esto es un ejemplo de FUNCION
Una segunda sintaxis utilizando from permite importar únicamente los recursos que necesitamos (funciones, clases, etc.), de modo que en las subsiguientes llamadas no es necesario especificar el nombre del módulo.
En el siguiente ejemplo, utilizaremos una clase y función fuera de esta para marcar la diferencia a otra de importarlo. Entonces, tenemos un archivo en python «ejemplo» en nuestro escritorio, cuyo contenido es el siguiente:
Por lo tanto, desde nuestra consola en Windows, lo llamamos de la siguiente manera:
Instalación de módulos de terceros
Podemos suponer que una de las ventajas de este lenguaje es que tiene una enorme colección de módulos y paquetes aportados por la comunidad de Python para realizar diversas tareas (lo que en otros lenguajes se conoce como librerías). Muchos de ellos, o la gran mayoría, se listan en PyPI (Python Package Index).
Para instalar módulos y paquetes, Python cuenta con la herramienta pip de forma nativa. La misma se usa en la consola (o shell) del sistema operativo haciendo uso de la opción install y escribiendo el nombre del módulo elegido a instalar. Cuya sintaxis es la siguiente:
pip install nombre_de_modulo
También podríamos usar:
python -m pip install nombre_del_modulo
Esto descarga e instala el paquete especificado automáticamente.
Tener en cuenta
En caso de estar en Linux o en iOS, podemos usar pip3 o python3. Cabe mencionar que pip es una aplicación en sí misma, y se utiliza en la consola del sistema operativo directamente. Por lo tanto, la ruta donde usamos pip no es importante. Lo que sí importa es que no tenemos que estar en la consola de Python.