Python - Llamar desde un funcion de un modulo a otra funcion de otro modulo en distinto directorio

 
Vista:
Imágen de perfil de Santiago
Val: 37
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Llamar desde un funcion de un modulo a otra funcion de otro modulo en distinto directorio

Publicado por Santiago (13 intervenciones) el 26/04/2021 00:12:09
Hola:

Tengo esta estructura de directorios y ficheros:

C:\miapp\seguridad
C:\miapp\seguridad\__init__.py
C:\miapp\seguridad\modulo1.py

C:\miapp\test
C:\miapp\test\__init__.py
C:\miapp\test\modulo2.py

(Los dos ficheros __init__.py están vacíos)

modulo1.py

1
2
def imprimir(mensaje):
    print(mensaje)

modulo2.py

1
2
3
4
5
import sys
sys.path.append('./seguridad')
 
from seguridad import imprimir
imprimir('prueba')

Y obtengo el error: "ModuleNotFoundError: No module named 'seguridad'"

¿Cómo puedo importar funciones de un paquete en otro que no sea el raiz? Porque desde el raiz (C:\miapp) sí me deja.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Llamar desde un funcion de un modulo a otra funcion de otro modulo en distinto directorio

Publicado por tincopasan (1082 intervenciones) el 26/04/2021 01:41:41
sería muy raro que te funcione, según tu ejemplo seguridad es un directorio y de ahí queres importar la función imprimir, para que funcione deberías importar el modulo1 que es el que tiene la función.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santiago
Val: 37
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Llamar desde un funcion de un modulo a otra funcion de otro modulo en distinto directorio

Publicado por Santiago (13 intervenciones) el 26/04/2021 09:00:23
Sí, cierto, perdona, pero lo escribí mal. Es así:

1
2
3
4
5
import sys
sys.path.append('./seguridad')
 
from modulo1 import imprimir
imprimir('prueba')

Y obtengo el error: "ModuleNotFoundError: No module named 'modulo1'"

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Llamar desde un funcion de un modulo a otra funcion de otro modulo en distinto directorio

Publicado por joel (901 intervenciones) el 26/04/2021 10:28:36
Creo que te falta un punto al momento de indicar la ruta de la carpeta seguridad, ya que no esta en la misma carpeta, sino que en una carpeta paralela.

Prueba así:
1
sys.path.append('../seguridad')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santiago
Val: 37
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Llamar desde un funcion de un modulo a otra funcion de otro modulo en distinto directorio

Publicado por Santiago (13 intervenciones) el 26/04/2021 11:04:27


¡Muchas gracias, eso era!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar