paquetes - lista de modulos de python
¿Cómo importar un archivo.py desde otro directorio? (2)
Puede agregar a la ruta del sistema en tiempo de ejecución:
import sys
sys.path.insert(0, ''path/to/your/py_file'')
import py_file
Esta es, con mucho, la forma más fácil de hacerlo.
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo hacer importaciones relativas en Python? 16 respuestas
Tengo esta estructura de archivos (directorio y después de archivos de flecha):
model -> py_file.py
report -> other_py_file.py
__init__.py
principal:
import model
import report
directorio de modelos:
import py_file
directorio de informes:
import other_py_file
ahora en other_py_file
quiero importar py_file
, pero lo que sea que intente, doy el error de que no existe tal módulo.
He intentado esto: from model import py_file
Entonces: import py_file
Parece que estas dos carpetas no se ven. ¿Cuál es la manera de importar archivos desde otro directorio? ¿Necesito especificar algunas importaciones adicionales en los archivos init .py?
Python3:
import importlib.machinery
loader = importlib.machinery.SourceFileLoader(''report'', ''/full/path/report/other_py_file.py'')
handle = loader.load_module(''report'')
handle.mainFunction(parameter)
Este método se puede usar para importar de cualquier forma que desee en una estructura de carpetas (hacia atrás, hacia adelante no importa realmente, utilizo rutas absolutas para estar seguro).
Felicitaciones a Sebastian por expresar una respuesta similar para Python2:
import imp
foo = imp.load_source(''module.name'', ''/path/to/file.py'')
foo.MyClass()