Modulos, pip y entornos
Cuando un archivo crece demasiado, lo dividimos. En Python, cada archivo .py puede funcionar como modulo.
Crear un modulo
Sección titulada «Crear un modulo»Archivo operaciones.py:
def sumar(a, b): return a + b
def restar(a, b): return a - bArchivo main.py:
from operaciones import sumar, restar
print(sumar(10, 5))print(restar(10, 5))Salida:
155Importar todo el modulo
Sección titulada «Importar todo el modulo»import operaciones
print(operaciones.sumar(2, 3))Salida:
5Codigo que no se ejecuta al importar
Sección titulada «Codigo que no se ejecuta al importar»Usa este patron:
def main(): print("Ejecutando programa")
if __name__ == "__main__": main()Asi main() se ejecuta cuando corres el archivo directamente, pero no cuando lo importas desde otro modulo.
Librerias externas
Sección titulada «Librerias externas»El flujo recomendado:
python -m venv .venvpython -m pip install requestspython -m pip freeze > requirements.txtEjemplo con requests:
import requests
respuesta = requests.get("https://api.github.com")
print(respuesta.status_code)print(type(respuesta.json()))Salida esperada:
200<class 'dict'>Retorno: respuesta.json() devuelve un diccionario si la respuesta contiene JSON valido.
Estructura sugerida
Sección titulada «Estructura sugerida»curso-python/ .venv/ main.py operaciones.py requirements.txt datos/ tareas.txtPaquetes propios
Sección titulada «Paquetes propios»Un paquete es una carpeta con modulos.
app/ __init__.py usuarios.py reportes.pymain.pymain.py:
from app.usuarios import normalizar_nombre
print(normalizar_nombre(" ana "))app/usuarios.py:
def normalizar_nombre(nombre): return nombre.strip().title()Salida:
AnaBuenas practicas
Sección titulada «Buenas practicas»- No instales paquetes globalmente si el proyecto puede tener
.venv. - Guarda dependencias en
requirements.txt. - Evita archivos con nombres de librerias conocidas:
json.py,requests.py,csv.py. - Separa funciones reutilizables en modulos pequenos.
Practica
Sección titulada «Practica»Crea un modulo texto.py con estas funciones:
def limpiar(texto): return texto.strip().lower()
def contar_palabras(texto): return len(texto.split())Luego importalas desde main.py y prueba:
from texto import limpiar, contar_palabras
frase = " Aprender Python gratis es posible "
print(limpiar(frase))print(contar_palabras(frase))Salida:
aprender python gratis es posible5