En este artículo, vamos a ver cómo importar un módulo desde otra carpeta. Mientras trabajamos en proyectos grandes, podemos enfrentarnos a una situación en la que queremos importar un módulo desde un directorio diferente, aquí veremos las diferentes formas de importar un el módulo forma una carpeta diferente.
Se puede hacer de dos formas:
- Usando sys.path
- Usando PythonPath.
Cree un módulo para la demostración:
Nombre del archivo: módulo0.py
Python3
def run(): print("Module 0 imported successfully")
Método 1: Usar sys.path
sys.path: es una variable incorporada dentro del módulo sys de python. Contiene una lista de directorios en los que el intérprete buscará los módulos requeridos.
Python3
import sys # Prints the list of directories that the # interpreter will search for the required module. print(sys.path)
Producción:
En este enfoque, inserte o agregue la ruta del directorio que contiene los módulos en sys.path.
Sintaxis:
sys.ruta.insertar(0, ruta)
sys.path.append(ruta)
Ejemplo: supongamos que necesitamos importar los siguientes módulos desde «Desktop\\Task\\modules» en «Desktop\\VScode\\Projects\\ImportModule\\main.py».
Inserte/Anexe la ruta a sys.path e importe el módulo 0 presente en el directorio y llame a su función de ejecución.
Python3
import sys # Insert the path of modules folder sys.path.insert(0, "C:\\Users\\anila\\Desktop\\Task\\modules") # Import the module0 directly since # the current path is of modules. import module0 # Prints "Module0 imported successfully" module0.run()
Producción:
Método 2: Usar PYTHONPATH
PYTHONPATH: es una variable de entorno que puede configurar para agregar directorios adicionales donde Python buscará módulos y paquetes.
Abra una terminal o símbolo del sistema e ingrese el siguiente comando:
Syntax: set PYTHONPATH=path_to_module_folder
Agregue la ruta a PYTHONPATH e importe el módulo 0 presente en el directorio y llame a su función de ejecución.
A continuación se muestra la implementación:
Python3
# Import the module0 directly since # the current path is of modules. import module0 # Prints "Module0 imported successfully" module0.run()
Producción:
Publicación traducida automáticamente
Artículo escrito por anilabhadatta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA