Llamar a una función desde otro archivo en Python

Set_up: Tengo un archivo .py para cada función que necesito usar en un programa.

En este programa, necesito llamar a la función desde los archivos externos.

He probado:

from file.py import function(a,b)

Pero me sale el error:

ImportError: No hay módulo llamado 'archivo.py'; el archivo no es un paquete

¿Cómo puedo solucionar este problema?

Solución

No es necesario añadir file.py al importar. Simplemente escriba from file import function, y luego llame a la función usando function(a, b). La razón por la que esto puede no funcionar, es porque file es uno de los módulos centrales de Python's, así que te sugiero que cambies el nombre de tu archivo.

Ten en cuenta que si intentas importar funciones de a.py a un fichero llamado b.py, tendrás que asegurarte de que a.py y b.py están en el mismo directorio.

Comentarios (8)

En primer lugar, no necesitas un .py.

Si tienes un archivo a.py y dentro tienes algunas funciones:

def b():
  # Something
  return 1

def c():
  # Something
  return 2

Y quieres importarlas en z.py tienes que escribir

from a import b, c
Comentarios (8)

Primero guarda el archivo en formato .py (por ejemplo, mi_ejemplo.py). Y si ese archivo tiene funciones

def xyz():

        --------

        --------

def abc():

        --------

        --------

En la función de llamada sólo tienes que escribir las siguientes líneas.

nombre_archivo: mi_ejemplo2.py

============================

import my_example.py

a = my_example.xyz()

b = my_example.abc()

============================

Comentarios (1)