0Pricing
Python Academy · Lección

Paquetes y __init__.py

Organice módulos en paquetes con una estructura de directorios adecuada.

Paquetes y __init__.py es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

¿Qué es un paquete?

Un paquete es un directorio que contiene un archivo __init__.py y uno o más módulos. Python trata cualquier directorio de este tipo como un paquete desde el que puede importar elementos.

mypackage/
    __init__.py
    utils.py
    math_helpers.py

El archivo __init__.py

__init__.py se ejecuta cuando se importa el paquete. Puede estar vacío o exponer determinados nombres a quienes lo utilizan.

# mypackage/__init__.py
from .utils import helper
from .math_helpers import add

Importar desde un paquete

Use la notación de puntos para importar submódulos o nombres definidos en __init__.py.

import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))

Subpaquetes

Los paquetes pueden anidarse: un subdirectorio con su propio __init__.py se convierte en un subpaquete.

mypackage/
    __init__.py
    network/
        __init__.py
        http.py

Importaciones relativas

Dentro de un paquete, use importaciones relativas con un punto inicial para hacer referencia a módulos hermanos sin escribir el nombre del paquete de forma explícita.

# mypackage/network/http.py
from ..utils import helper   # two levels up

Importaciones absolutas y relativas

Las importaciones absolutas no son ambiguas y son las preferidas. Las importaciones relativas resultan útiles dentro de paquetes grandes para evitar nombres largos.

# Absolute
from mypackage.utils import helper

# Relative (inside mypackage)
from .utils import helper

__all__ en __init__.py

Defina __all__ para controlar qué exporta from package import *.

# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import add

Paquetes de espacio de nombres (PEP 420)

Python 3.3 y versiones posteriores admiten paquetes de espacio de nombres: directorios sin __init__.py. Resultan útiles para dividir un paquete entre varios directorios.

# No __init__.py needed
# Just have the directory and import normally
import myns.module

Inicialización de __init__ del paquete

Use __init__.py para definir constantes del paquete, configurar el registro o cargar de forma diferida submódulos pesados.

# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'

Distribución de paquetes

Añada pyproject.toml o setup.py para que pueda instalar su paquete con pip.

# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"

# Install locally
# pip install -e .

Inspeccionar los atributos de un paquete

Use __file__, __path__ y __name__ para inspeccionar los metadatos del paquete durante la ejecución.

import mypackage
print(mypackage.__file__)   # path to __init__.py
print(mypackage.__path__)   # list of directory paths
print(mypackage.__name__)   # 'mypackage'

Comprobación rápida

¿Qué archivo convierte un directorio en un paquete de Python?

Repaso

Los paquetes organizan los módulos en directorios mediante __init__.py. Use importaciones absolutas para mayor claridad, importaciones relativas dentro de un paquete y __all__ para controlar las API públicas.

Preguntas frecuentes

¿La lección «Paquetes y __init__.py» es gratis?

Sí — el texto completo de «Paquetes y __init__.py» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Paquetes y __init__.py»?

Organice módulos en paquetes con una estructura de directorios adecuada. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Paquetes y __init__.py»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Creación e importación de módulos
  2. La biblioteca estándar de Python
  3. Paquetes y __init__.py
  4. Instalación de paquetes con pip
← Volver a Python Academy