Importar módulos del directorio principal en Python

Muhammad Waiz Khan 30 enero 2023
  1. Importar un módulo desde el directorio principal en Python usando la importación relativa
  2. Importar un módulo desde el directorio principal en Python agregándolo a PYTHONPATH
  3. Importar un módulo desde el directorio principal en Python utilizando el método sys.path.insert()
Importar módulos del directorio principal en Python

Este tutorial explicará varios métodos para importar un módulo desde el directorio principal en Python. Importamos diferentes módulos para usar otras funcionalidades en nuestro código. Nos ahorra copiar o implementar las funcionalidades nuevamente y hace que el código sea más limpio y más fácil de entender.

Supongamos que queremos importar un módulo del directorio padre del directorio del proyecto actual. Podemos hacerlo utilizando diferentes métodos, que se explican a continuación.

Importar un módulo desde el directorio principal en Python usando la importación relativa

La importación relativa se usa para importar un módulo en el código usando la ruta del directorio actual como referencia. Para importar un módulo usando la instrucción import, primero tendremos que declarar el directorio como un paquete agregando el archivo __init__.py en el directorio principal. Una vez que el directorio principal se declara un paquete, podemos importar el módulo utilizando el enfoque de paquete relativo.

Supongamos que tenemos el siguiente árbol de directorios.

parent_parent_directory/
    parent_directory/
        mymodule.py
        __init__.py
    current_directory/
        currentmodule.py
    mymodule.py
    __init__.py

El siguiente código de ejemplo demuestra cómo importar el módulo desde el paquete principal.

from ..parent_directory import mymodule

Para importar el módulo desde el directorio dos niveles arriba desde el directorio actual, tendremos que poner tres puntos antes del nombre del directorio del paquete para retroceder dos niveles, como se muestra en el código de ejemplo a continuación.

from ...parent_parent_directory import mymodule

Importar un módulo desde el directorio principal en Python agregándolo a PYTHONPATH

El PYTHONPATH es una variable de entorno que especifica la lista de directorios que Python debería buscar para importar módulos y paquetes.

Entonces, si agregamos el directorio principal desde donde necesitamos importar el módulo, Python buscará automáticamente en el directorio principal y encontrará el módulo requerido.

Importar un módulo desde el directorio principal en Python utilizando el método sys.path.insert()

También podemos usar el método sys.path.insert() para agregar el directorio padre a la lista sys.path, que es la lista de cadenas que especifica las rutas para buscar los paquetes y módulos. sys.path contiene la lista de directorios de variables de entorno PYTHONPATH, y también se pueden agregar otras rutas utilizando el método sys.path.insert().

El siguiente código de ejemplo demuestra cómo usar el método sys.path.insert() para agregar el directorio principal a la lista sys.path en Python.

import mymodule
import os
import sys

p = os.path.abspath(".")
sys.path.insert(1, p)

Artículo relacionado - Python Import