Discussion:
[pyar] Importaciones relativas - Consulta
emanuel sandoval
2018-05-18 23:23:53 UTC
Permalink
Buenas:
Me gustaría saber como realizar importaciones de manera
relativa subiendo en la jerarquía de directorios,
y luego bajando varias carpetas hasta llegar a un determinado módulo.

Por ej:

superior
|--carpeta1
| |--subcarpeta1
| |--subcarpeta2
| | |--callable_script.py
| |--module.py
|
|--carpeta2
| |--module1.py
|
|--carpeta3
|--subcarpeta4
|--target_module.py

En este ejemplo, me gustarías saber como importar una función o clase que
se encuentra en el módulo "target_module.py" desde el módulo
"callable_script.py".
Dado que el script "callable_script.py" será ejecutado de manera individual,
es decir, no correrá como parte de un programa mayor.

Muchas gracias.
Luis Andraschnik
2018-05-19 19:09:11 UTC
Permalink
No en forma directa, hay que darle un contexto:

import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
'../../../carpeta3/)))

from subcarpeta4.target_module import algunaclase

dentro de subcarpeta 4 tiene que haber un __init__.py

Saludos
Luis


El 18 de mayo de 2018, 20:23, emanuel sandoval <
Post by emanuel sandoval
Me gustaría saber como realizar importaciones de manera
relativa subiendo en la jerarquía de directorios,
y luego bajando varias carpetas hasta llegar a un determinado módulo.
superior
|--carpeta1
| |--subcarpeta1
| |--subcarpeta2
| | |--callable_script.py
| |--module.py
|
|--carpeta2
| |--module1.py
|
|--carpeta3
|--subcarpeta4
|--target_module.py
En este ejemplo, me gustarías saber como importar una función o clase que
se encuentra en el módulo "target_module.py" desde el módulo
"callable_script.py".
Dado que el script "callable_script.py" será ejecutado de manera individual,
es decir, no correrá como parte de un programa mayor.
Muchas gracias.
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Luis Andraschnik
2018-05-19 19:11:12 UTC
Permalink
Perdón.faltó cerrar la comilla:

import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
'../../../carpeta3/'))) ##### <- acá
Post by Luis Andraschnik
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
'../../../carpeta3/)))
from subcarpeta4.target_module import algunaclase
dentro de subcarpeta 4 tiene que haber un __init__.py
Saludos
Luis
El 18 de mayo de 2018, 20:23, emanuel sandoval <
Post by emanuel sandoval
Me gustaría saber como realizar importaciones de manera
relativa subiendo en la jerarquía de directorios,
y luego bajando varias carpetas hasta llegar a un determinado módulo.
superior
|--carpeta1
| |--subcarpeta1
| |--subcarpeta2
| | |--callable_script.py
| |--module.py
|
|--carpeta2
| |--module1.py
|
|--carpeta3
|--subcarpeta4
|--target_module.py
En este ejemplo, me gustarías saber como importar una función o clase que
se encuentra en el módulo "target_module.py" desde el módulo
"callable_script.py".
Dado que el script "callable_script.py" será ejecutado de manera individual,
es decir, no correrá como parte de un programa mayor.
Muchas gracias.
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Loading...