paquetes - llamar una funcion de otro script python
Llama a una funciĆ³n desde otro archivo en Python (12)
Cambie el nombre del módulo a otro que no sea ''archivo''.
Entonces, también asegúrate de llamar a la función que:
1) si está importando el módulo completo, reitere el nombre del módulo cuando lo llame:
import module
module.function_name()
o
import pizza
pizza.pizza_function()
2) o si está importando funciones específicas, funciones con un alias o todas las funciones usando *, no reitera el nombre del módulo:
from pizza import pizza_function
pizza_function()
o
from pizza import pizza_function as pf
pf()
o
from pizza import *
pizza_function()
Configuración: 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 intentado:
from file.py import function(a,b)
Pero me sale el error:
ImportError: Ningún módulo llamado ''file.py''; el archivo no es un paquete
¿Cómo soluciono este problema?
Debe tener el archivo en la misma ubicación que la de los archivos de Python que está intentando importar. También ''de la función de importación de archivos'' es suficiente.
Dentro de MathMethod.Py.
def Add(a,b):
return a+b
def subtract(a,b):
return a-b
Dentro de Main.Py
import MathMethod as MM
print(MM.Add(200,1000))
Salida: 1200
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 importarlos en z.py
tienes que escribir
from a import b, c
Encontré la misma característica pero tuve que hacer lo siguiente para que funcione.
Si está viendo ''ModuleNotFoundError: No hay un módulo llamado'', probablemente necesite el punto (.) Delante del nombre de archivo como se muestra a continuación;
desde .file import funtion
No hay necesidad de agregar file.py
al importar. Simplemente escriba from file import function
y luego llame a la función usando la function(a, b)
. La razón por la que esto puede no funcionar es porque el file
es uno de los módulos principales de Python, por lo que le sugiero que cambie el nombre de su archivo.
Tenga en cuenta que si está intentando importar funciones de a.py
a un archivo llamado b.py
, deberá asegurarse de que a.py
y b.py
estén en el mismo directorio.
No tienes que agregar file.py
Simplemente mantenga el archivo en la misma ubicación que el archivo desde donde lo quiere importar. Luego solo importa tus funciones:
from file import a, b
Primero guarde el archivo en formato .py (por ejemplo, my_example.py
). Y si ese archivo tiene funciones,
def xyz():
--------
--------
def abc():
--------
--------
En la función de llamada solo tienes que escribir las siguientes líneas.
nombre_archivo: mi_ejemplo2.py
============================
import my_example.py
a = my_example.xyz()
b = my_example.abc()
============================
Puedes hacerlo de 2 maneras. Lo primero es solo importar la función específica que desea de file.py. Para hacer este uso
from file import function
Otra forma es importar el archivo completo.
import file as fl
Entonces puedes llamar a cualquier función dentro de file.py usando
fl.function(a,b)
Supongamos que el archivo al que desea llamar es otro archivo.py y el método al que desea llamar es el método 1, luego importe el archivo y luego el método.
from anotherfile import method1
si method1 es parte de una clase, deje que la clase sea class1, entonces
from anotherfile import class1
luego cree un objeto de clase1, suponga que el nombre del objeto es ob1, entonces
ob1 = class1()
ob1.method1()
También puede llamar a la función desde un directorio diferente, en caso de que no pueda o no quiera tener la función en el mismo directorio en el que está trabajando. Puedes hacerlo de dos maneras (quizás haya más alternativas, pero estas son las que han funcionado para mí).
Alternativa 1 Cambia temporalmente tu directorio de trabajo
import os
os.chdir("**Put here the directory where you have the file with your function**")
from file import function
os.chdir("**Put here the directory where you were working**")
Alternativa 2 Agregue el directorio donde tiene su función a sys.path
import sys
sys.path.append("**Put here the directory where you have the file with your function**")
from file import function
en mi caso nombré mi archivo helper.scrap.py
y no pude hacerlo funcionar hasta que cambié a helper.py