¿Cómo importar un módulo de Python dada la ruta completa?

El módulo python es un archivo que consta de código Python con un conjunto de funciones, clases y definiciones de variables. El módulo hace que el código sea reutilizable y fácil de entender. El programa que necesita usar el módulo debe importar ese módulo en particular. En este artículo, discutiremos cómo importar un módulo de Python dada su ruta completa.

Hay varios métodos que se pueden usar para importar el módulo utilizando su ruta completa:

  • Uso de la función sys.path.append()
  • Uso del paquete importlib
  • Uso de la clase SourceFileLoader

Considere la siguiente disposición de archivos y veamos cómo se pueden usar los métodos mencionados anteriormente para importar el módulo gfg.py en main.py :

python
     |--main.py
     |articles
        |--gfg.py  

A continuación se muestra el código para gfg.py :

Python3

# class
class GFG:
    
  # method
  def method_in():
    print("Inside Class method")
      
# explicit function    
def method_out():
  print("Inside explicit method")

Uso de la función sys.path.append()

Esta es la forma más fácil de importar un módulo de Python agregando la ruta del módulo a la variable de ruta. La variable de ruta contiene los directorios en los que el intérprete de Python busca módulos que se importaron en los archivos de origen.

Sintaxis:

sys.path.append("module_path")

Ejemplo :

Python3

# importing module
import sys
  
# appending a path
sys.path.append('articles')
  
# importing required module
import gfg
from gfg import GFG
  
# aceesing its content
GFG.method_in()
gfg.method_out()

Producción:

Inside Class method
Inside explicit method

Uso del paquete importlib

El paquete importlib proporciona la implementación de la declaración de importación en el código fuente de Python portátil para cualquier intérprete de Python. Esto permite a los usuarios crear sus propios objetos personalizados, lo que les ayuda a utilizar el proceso de importación según sus necesidades. El importlib.util es uno de los módulos incluidos en este paquete que se puede usar para importar el módulo desde la ruta dada.

Sintaxis:

módulo = importlib.util.spec_from_file_location(“nombre_módulo”, “ruta_módulo”)

Ejemplo:

Python3

import importlib.util
  
# specify the module that needs to be 
# imported relative to the path of the 
# module
spec=importlib.util.spec_from_file_location("gfg","articles/gfg.py")
  
# creates a new module based on spec
foo = importlib.util.module_from_spec(spec)
  
# executes the module in its own namespace
# when a module is imported or reloaded.
spec.loader.exec_module(foo)
  
foo.GFG.method_in()
foo.method_out()

Producción:

Inside Class method
Inside explicit method

Uso de la clase SourceFileLoader

La clase SourceFileLoader es una clase base abstracta que se utiliza para implementar la carga de archivos fuente con la ayuda de la función load_module() que en realidad importa el módulo.

Sintaxis:

module = SourceFileLoader("module_name","module_path").load_module()

Ejemplo :

Python3

from importlib.machinery import SourceFileLoader
  
# imports the module from the given path
foo = SourceFileLoader("gfg","articles/gfg.py").load_module()
  
foo.GFG.method_in()
foo.method_out()

Producción:

Inside Class method
Inside explicit method

Publicación traducida automáticamente

Artículo escrito por deepanshu_rustagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *