Importar módulo desde subdirectorio en Python

Muhammad Waiz Khan 30 enero 2023
  1. Importar un módulo desde el subdirectorio en Python usando __init__.py
  2. Importar un módulo desde el subdirectorio en Python usando el método sys.path.insert()
Importar módulo desde subdirectorio en Python

Este tutorial explicará los diversos métodos para importar un módulo desde el subdirectorio en Python. Supongamos que tenemos un archivo en un subdirectorio del directorio del proyecto y queremos importar el archivo y usar sus métodos en nuestro código.

Podemos importar el archivo desde un subdirectorio en Python declarando el subdirectorio como un paquete. Entonces Python lo tratará como un paquete y podremos importar el archivo para ese directorio. La otra opción puede ser agregar el subdirectorio a la variable de entorno PYTHONPATH, y es la ruta donde Python busca los paquetes para importar por defecto. Los detalles y el uso de estos métodos se dan a continuación.

Importar un módulo desde el subdirectorio en Python usando __init__.py

El archivo __init__.py se utiliza para declarar un directorio como paquete. El archivo __init__.py evita que Python mezcle el directorio con el mismo nombre, por lo que para diferenciar entre un directorio simple y un paquete, se usa el archivo __init__.py.

El archivo __init__.py puede estar vacío, o puede tener el código necesario para inicializar el paquete y una lista de los módulos necesarios para ser importados con el paquete; esta lista está representada por la variable __all__.

Una vez que se agrega el archivo __init__.py al subdirectorio, podemos importar el archivo desde el subdirectorio como se muestra en el siguiente código de ejemplo:

import subdirectory.myfile

Importar un módulo desde el subdirectorio en Python usando el método sys.path.insert()

El método alternativo para importar un archivo desde el subdirectorio es agregar ese directorio al PYTHONPATH. PYTHONPATH es la variable de entorno que contiene la ruta de los directorios que Python busca para importar los paquetes.

Por lo tanto, si agregamos el subdirectorio al PYTHONPATH usando el método sys.path.insert(), Python primero verá los directorios en PYTHONPATH y lo importará desde allí.

El método sys.path.insert() insertará el subdirectorio en la variable sys.path o PYTHONPATH que contiene la lista de directorios que Python buscará para importar el módulo requerido.

El siguiente código de ejemplo demuestra cómo utilizar el método sys.path.insert() para importar un archivo desde el subdirectorio:

import myfile
import sys

sys.path.insert(0, "./subdirectory")

Artículo relacionado - Python Import