Cómo importar módulos en Python 3

En este post vamos a ver como haciendo uso de módulos nos permite hacer que nuestros programas sean más robustos y poderosos a medida que aprovechamos el código existente. También podemos crear nuestros propios módulos para nosotros y para que otros programadores los utilicen en programas futuros.

El lenguaje de programación Python viene con una variedad de funciones integradas . Entre estas se encuentran varias funciones comunes, que incluyen:

  • print() que imprime expresiones
  • abs() que devuelve el valor absoluto de un número
  • int() que convierte otro tipo de datos en un entero
  • len() que devuelve la longitud de una secuencia o colección

Sin embargo, estas funciones integradas son limitadas y podemos hacer uso de módulos para hacer programas más sofisticados.

Los módulos son archivos con extension .py de Python que constan lógicamente de código Python. Se puede hacer referencia a cualquier archivo de Python como módulo. Un archivo de Python llamado hello.py tiene el nombre de módulo hello que puede importarse a otros archivos de Python o usarse en el intérprete de línea de comandos de Python.

Los módulos pueden definir funciones , clases y variables a las que puede hacer referencia en otros archivos .py de Python o mediante el intérprete de línea de comandos de Python.

En Python, se accede a los módulos mediante la instrucción import . Cuando hacemos esto, ejecutamos el código del módulo, manteniendo los alcances de las definiciones para que tus archivos actuales puedan hacer uso de estos.

Cuando Python importa un módulo llamado, hello por ejemplo, el intérprete primero buscará un módulo incorporado llamado hello. Si no se encuentra un módulo integrado, el intérprete de Python buscará un archivo nombrado hello.py en una lista de directorios que recibe de la variable sys.path.

Vamos a ver la verificación e instalación de módulos, la importación de módulos y los módulos de alias.

Comprobación e instalación de módulos

Hay varios módulos que están integrados en la biblioteca estándar de Python , que contiene muchos módulos que brindan acceso a la funcionalidad del sistema o brindan soluciones estandarizadas. La biblioteca estándar de Python es parte de cada instalación de Python.

Para comprobar que estos módulos de Python están listos para funcionar, ingrese a su entorno de programación Python 3 local o al entorno de programación basado en servidor e inicie el intérprete de Python en su línea de comando así:


 python 

Desde dentro del intérprete, puede ejecutar la declaración import para asegurarse de que el módulo dado esté listo para ser llamado, como en:


 import math 

Dado que math es un módulo integrado, su intérprete debe completar la tarea sin comentarios, volviendo a la indicación. Esto significa que no necesita hacer nada para comenzar a usar el módulo math.

Ejecutemos la declaración import con un módulo que quizás no haya instalado, como la biblioteca de trazado 2D matplotlib:


 import matplotlib 

Si matplotlib no está instalado, recibirá un error como este:

       
        Output
       ImportError: No module named 'matplotlib'

Puede desactivar el intérprete de Python con CTRL + D y luego instalarlo matplotlibcon pip.

A continuación, podemos utilizar pip para instalar el módulo matplotlib:


 pip install matplotlib 

Una vez que esté instalado, puede importar matplotlib en el intérprete de Python usando import matplotlib, y se completará sin errores.

Importación de módulos

Para hacer uso de las funciones de un módulo, deberá importar el módulo con una declaración import

Una declaracion import se compone de la palabra clave import junto con el nombre del módulo.

En un archivo de Python, esto se declarará en la parte superior del código, debajo de las líneas shebang o comentarios generales.

Entonces, en el archivo de programa de Python my_rand_int.py importaríamos el modulo random para generar números aleatorios de esta manera: my_rand_int.py

import random

Cuando importamos un módulo, lo ponemos a nuestra disposición en nuestro programa actual como un espacio de nombres separado. Esto significa que tendremos que referirnos a la función en notación de puntos, como en [module].[function].

En la práctica, con el ejemplo del módulo random, esto puede parecer una función como:

  • random.randint() que llama a la función para devolver un entero aleatorio, o
  • random.randrange() que llama a la función para devolver un elemento aleatorio de un rango especificado.

Creemos un ciclo for para mostrar cómo llamaremos a una función del módulo random dentro de nuestro programa: my_rand_int.py

import random


for i in range(10):
    print(random.randint(1, 25))

Este pequeño programa primero importa el módulo random en la primera línea, luego se mueve a un ciclo for que trabajará con 10 elementos. Dentro del ciclo, el programa imprimirá un número entero aleatorio dentro del rango de 1 a 25 (inclusive). Los enteros 1 y 25se pasan a random.randint()como sus parámetros.

Cuando ejecutamos el programa con python my_rand_int.py, recibiremos 10 enteros aleatorios como salida. Debido a que estos son aleatorios, es probable que obtenga diferentes enteros cada vez que ejecute el programa, pero se verán así:


       
        Output
       6
9
1
14
3
22
10
1
15
9

Los números enteros nunca deben estar por debajo de 1 o por encima de 25.

Si desea utilizar funciones de más de un módulo, puede hacerlo agregando varias declaraciones import a my_rand_int.py

import random
import math

Es posible que vea programas que importan varios módulos con comas que los separan, como en import random, math, pero esto no es coherente con la Guía de estilo de PEP 8 .

Para hacer uso de nuestro módulo adicional, podemos agregar la constante pi de math a nuestro programa y disminuir el número de enteros aleatorios impresos: my_rand_int.py

import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

Ahora, cuando ejecutamos nuestro programa, recibiremos una salida que se ve así, con una aproximación de pi como nuestra última línea de salida:


       
        Output
       18
10
7
13
10
3.141592653589793

La declaración import le permite importar uno o más módulos a su programa Python, permitiéndole hacer uso de las definiciones construidas en esos módulos.

Usando fromimport

Para hacer referencia a elementos de un módulo dentro del espacio de nombres de su programa, puede usar la declaración fromimport. Cuando importa módulos de esta manera, puede hacer referencia a las funciones por su nombre en lugar de mediante la notación de puntos

En esta construcción, puede especificar qué definiciones hacer referencia directamente.

En otros programas, puede ver que la declaración import toma referencias a todo lo definido dentro del módulo mediante el uso de un asterisco ( *) como comodín, pero PEP 8 lo desaconseja. .

Primero veamos la importación de una función específica, randint()desde el módulo random en my_rand_int.py

from random import randint

Aquí, primero llamamos a la palabra clave from, luego al módulo random. A continuación, usamos la palabra clave import y llamamos a la función específica que nos gustaría usar.

Ahora, cuando implementemos esta función dentro de nuestro programa, ya no escribiremos la función en notación de puntos como, random.randint()sino que simplemente escribiremos randint() en my_rand_int.py

from random import randint


for i in range(10):
    print(randint(1, 25))

Cuando ejecute el programa, recibirá un resultado similar al que recibimos anteriormente.

Usando la construcción fromimport nos permite hacer referencia a los elementos definidos de un módulo dentro del espacio de nombres de nuestro programa, lo que nos permite evitar la notación de puntos.

Módulos de aliasing

Es posible modificar los nombres de los módulos y sus funciones dentro de Python usando la palabra clave as.

Es posible que desee cambiar un nombre porque ya ha usado el mismo nombre para otra cosa en su programa, otro módulo que ha importado también usa ese nombre, o puede abreviar un nombre más largo que está usando mucho.

La construcción de esta declaración se ve así:

import [module] as [another_name]

Modificaremos el nombre del módulo math en nuestro archivo de programa my_math.py. Cambiaremos el nombre del módulo de matha m para abreviarlo. Nuestro programa modificado se verá así: my_math.py

import math as m


print(m.pi)
print(m.e)

Dentro del programa, ahora nos referimos a la constante pi como m.pi en lugar de math.pi .

Para algunos módulos, es habitual utilizar alias. La documentación oficial del módulomatplotlib.pyplotr equiere el uso de pltcomo alias:

import matplotlib.pyplot as plt

Esto permite a los programadores agregar la palabra más corta plt a cualquiera de las funciones disponibles dentro del módulo, como en plt.show().

.

Deja una respuesta