He estado luchando con las importaciones en mi paquete durante la última hora.
Tengo una estructura de directorios así:
main_package
|
| __init__.py
| folder_1
| | __init__.py
| | folder_2
| | | __init__.py
| | | script_a.py
| | | script_b.py
|
| folder_3
| | __init__.py
| | script_c.py
Quiero acceder al código en script_b.py
así como el código de script_c.py
de script_a.py
. ¿Cómo puedo hacer esto?
Si pongo un simple import script_b
en el interior script_a.py
cuando corro
from main_package.folder_1.folder_2 import script_b
me encuentro con un
ImportError: no module named "script_b"
Para acceder script_c.py
, No tengo ni idea. No pude encontrar ninguna información sobre cómo acceder a los archivos dos niveles más arriba, pero sé que puedo importar archivos un nivel más arriba con
from .. import some_module
¿Cómo puedo acceder a estos dos archivos desde script_a.py
?
tobspr
Para acceder a script_c y script_b desde script_a, usaría:
from ...folder_3 import script_c
from . import script_b
O si usa python3, puede importar script_b desde script_a simplemente usando:
import script_b
Sin embargo, probablemente debería usar importaciones absolutas:
from mypackage.folder_3 import script_c
from mypackage.folder1.folder2 import script_b
Ver también: Importaciones absolutas vs relativas
-
¿Qué pasa con el acceso
script_b
?– Lucas Taylor
24 de abril de 2016 a las 18:03
-
Que es
...
¿significar?– mrgloom
11/09/2019 a las 13:50
-
@mrgloom Significa subir dos directorios: directorio actual:
.
subir un directorio:..
subir dos directorios:...
.– Adam Ericson
22 de enero de 2020 a las 21:57
-
import ...utility_functions.plot_figures as plotfgs ^ SyntaxError: invalid syntax
Python muestra un error de sintaxis para…– Aarón John Sabu
21 de julio de 2021 a las 11:47
Posible duplicado de Cómo lograr esta importación relativa en python
– Ani Menón
24 de abril de 2016 a las 18:04