it-swarm.com.de

Rufen Sie eine Funktion aus einer anderen Datei in Python auf

Set_up: Ich habe eine .py-Datei für jede Funktion, die ich in einem Programm verwenden muss.

In diesem Programm muss ich die Funktion aus den externen Dateien aufrufen.

Ich habe es versucht:

from file.py import function(a,b)

Aber ich bekomme den Fehler:

ImportError: Kein Modul mit dem Namen 'file.py'; Datei ist kein Paket

Wie kann ich dieses Problem beheben?

300
user2977230

Es ist nicht notwendig, beim Importieren file.py hinzuzufügen. Schreiben Sie einfach from file import function und rufen Sie dann die Funktion mit function(a, b) auf. Der Grund dafür, dass dies möglicherweise nicht funktioniert, liegt daran, dass file eines der Kernmodule von Python ist. Ich empfehle Ihnen, den Namen Ihrer Datei zu ändern.

Wenn Sie versuchen, Funktionen aus a.py in eine Datei mit dem Namen b.py zu importieren, müssen Sie sicherstellen, dass a.py und b.py im selben Verzeichnis liegen.

361
Games Brainiac

Zunächst benötigen Sie keinen .py.

Wenn Sie eine Datei a.py haben, haben Sie einige Funktionen:

def b():
  # Something
  return 1

def c():
  # Something
  return 2

Und Sie möchten sie in z.py importieren, müssen Sie schreiben

from a import b, c
130
Salvador Dali

Sie können dies auf zwei Arten tun. Zuerst müssen Sie nur die gewünschte Funktion aus file.py importieren. Verwenden Sie dazu

from file import function

Eine andere Möglichkeit ist, die gesamte Datei zu importieren

import file as fl

Dann können Sie jede Funktion in file.py mit aufrufen

fl.function(a,b)
28
Pulkit Bansal

Speichern Sie zuerst die Datei im .py-Format (z. B. my_example.py) . Und wenn diese Datei über Funktionen verfügt,

def xyz():

        --------

        --------

def abc():

        --------

        --------

In der aufrufenden Funktion müssen Sie nur die folgenden Zeilen eingeben.

dateiname: mein_example2.py

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

import my_example.py


a = my_example.xyz()

b = my_example.abc()

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

9
Nagaraj Simpi

Kam über das gleiche Feature, aber ich musste das unten machen, damit es funktioniert. 

Wenn Sie 'ModuleNotFoundError: No module named' sehen, benötigen Sie wahrscheinlich den Punkt (.) Vor dem Dateinamen (siehe unten).

von .fileimportieren

8
Ricky Boy

Sie können die Funktion auch aus einem anderen Verzeichnis aufrufen, falls Sie die Funktion nicht in demselben Verzeichnis haben möchten, in dem Sie arbeiten. Sie können dies auf zwei Arten tun (vielleicht gibt es mehr Alternativen, aber diese haben für mich funktioniert).

Alternative 1 Ändern Sie vorübergehend Ihr Arbeitsverzeichnis

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**")

Alternative 2 Fügen Sie das Verzeichnis, in dem Sie Ihre Funktion haben, zu sys.path hinzu

import sys

sys.path.append("**Put here the directory where you have the file with your function**")

from file import function
7
Juan Ossa

Sie müssen nicht file.py hinzufügen.

Behalten Sie einfach die Datei am selben Ort wie die Datei, von der Sie sie importieren möchten. Dann importieren Sie einfach Ihre Funktionen:

from file import a, b
5
Mohan

In MathMethod.Py.

def Add(a,b):
   return a+b 

def subtract(a,b):
  return a-b

In Main.Py

import MathMethod as MM 
  print(MM.Add(200,1000))

Ausgabe: 1200

4
Mahabubuzzaman

Benennen Sie das Modul in etwas anderes als "Datei" um.

Stellen Sie dann auch sicher, wenn Sie die Funktion aufrufen:

1) Wenn Sie das gesamte Modul importieren, wiederholen Sie den Namen des Moduls beim Aufruf:

import module
module.function_name()

oder

import pizza
pizza.pizza_function()

2) oder wenn Sie bestimmte Funktionen, Funktionen mit einem Aliasnamen oder alle Funktionen, die * verwenden, importieren, wiederholen Sie den Modulnamen nicht:

from pizza import pizza_function
pizza_function()

oder

from pizza import pizza_function as pf
pf()

oder

from pizza import *
pizza_function()
2
misterrodger

Die Datei sollte sich am selben Ort befinden wie die Python-Dateien, die Sie importieren möchten. Auch 'aus Datei Importfunktion' reicht aus.

2
Girish M

in meinem Fall habe ich meine Datei helper.scrap.py benannt und konnte sie nicht funktionieren lassen, bis ich helper.py geändert habe. 

1
bresleveloper

Wenn sich Ihre Datei in einer anderen Paketstruktur befindet und Sie sie aus einem anderen Paket aufrufen möchten, können Sie sie auf folgende Weise aufrufen:

Nehmen wir an, Sie haben in Ihrem Python-Projekt folgende Paketstruktur:

 Python package and file structure

in - com.my.func.DifferentFunction Python-Datei haben Sie einige Funktionen wie:

def add(arg1, arg2):
    return arg1 + arg2

def sub(arg1, arg2) :
    return arg1 - arg2

def mul(arg1, arg2) :
    return arg1 * arg2

Und Sie möchten verschiedene Funktionen von Example3.py aufrufen, und zwar auf folgende Weise:

Definieren Sie die Importanweisung in Example3.py - Datei, um alle Funktionen zu importieren

from com.my.func.DifferentFunction import *

oder definieren Sie jeden Funktionsnamen, den Sie importieren möchten

from com.my.func.DifferentFunction import add, sub, mul

Dann können Sie in Example3.py eine Funktion zum Ausführen aufrufen:

num1 = 20
num2 = 10

print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))

Ausgabe:

 add :  30

 sub :  10

 mul :  200
0
abanmitra

Angenommen, die Datei, die Sie aufrufen möchten, ist eine andere Datei.py, und die Methode, die Sie aufrufen möchten, ist Methode1. Dann importieren Sie zuerst die Datei und dann die Methode

from anotherfile import method1

wenn method1 Teil einer Klasse ist, lassen Sie die Klasse class1 sein 

from anotherfile import class1

erstellen Sie dann ein Objekt von Klasse1. Nehmen Sie an, der Objektname lautet ob1

ob1 = class1()
ob1.method1()
0

fügen Sie einen Punkt (.) vor einem Dateinamen hinzu, wenn Sie diese Datei importieren möchten, die sich in demselben Verzeichnis befindet, in dem Sie Ihren Code ausführen.

Zum Beispiel führe ich eine Datei mit dem Namen a.py aus und möchte eine Methode mit dem Namen addFun importieren, die in b.py geschrieben ist, und b.py befindet sich im selben Verzeichnis

aus .b importieren addFun

0
Shravan Kumar