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 behebe ich dieses Problem?
from file import function
. Keine Notwendigkeit für Dateierweiterungen oder Funktionsparameterfile.py
, stellen Sie sicher, dass sich in Ihrem Verzeichnis kein Paket mit dem Namen befindetfile
.Antworten:
file.py
Beim Importieren muss nichts hinzugefügt werden . Schreiben Sie einfachfrom file import function
und rufen Sie die Funktion mit auffunction(a, b)
. Der Grund, warum dies möglicherweise nicht funktioniert, liegt darin, dassfile
es sich um eines der Kernmodule von Python handelt. Ich empfehle daher, den Namen Ihrer Datei zu ändern.Beachten Sie, dass , wenn Sie zu Importfunktionen von dem Versuch ,
a.py
in eine Datei namensb.py
, müssen Sie sicherstellen , dassa.py
undb.py
in demselben Verzeichnis befindet.quelle
Zunächst einmal brauchen Sie keine
.py
.Wenn Sie eine Datei haben
a.py
und darin haben Sie einige Funktionen:Und wenn Sie sie importieren möchten, müssen
z.py
Sie schreibenquelle
Sie können dies auf zwei Arten tun. Zunächst müssen Sie nur die gewünschte Funktion aus file.py importieren. Verwenden Sie dazu
Eine andere Möglichkeit besteht darin, die gesamte Datei zu importieren
Dann können Sie jede Funktion in file.py mit aufrufen
quelle
Sie können die Funktion auch aus einem anderen Verzeichnis aufrufen, falls Sie die Funktion nicht in demselben Verzeichnis haben möchten oder 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
Alternative 2 Fügen Sie das Verzeichnis, in dem Sie Ihre Funktion haben, zu sys.path hinzu
quelle
Wenn sich Ihre Datei in einer anderen Paketstruktur befindet und Sie sie von einem anderen Paket aus aufrufen möchten, können Sie sie folgendermaßen aufrufen:
Angenommen, Sie haben in Ihrem Python-Projekt folgende Paketstruktur:
In der
com.my.func.DifferentFunction
Python-Datei haben Sie eine Funktion wie:Und Sie möchten verschiedene Funktionen von aufrufen
Example3.py
, dann können Sie dies folgendermaßen tun:Definieren Sie die Importanweisung in der
Example3.py
Datei für den Import aller Funktionenoder definieren Sie jeden Funktionsnamen, den Sie importieren möchten
Dann
Example3.py
können Sie in Funktion zum Ausführen aufrufen:Ausgabe:
quelle
Kam über die gleiche Funktion, aber ich musste die folgenden Schritte ausführen, damit es funktioniert.
Wenn Sie 'ModuleNotFoundError: Kein Modul mit dem Namen' sehen, benötigen Sie wahrscheinlich den Punkt (.) Vor dem Dateinamen wie folgt.
quelle
Speichern Sie zuerst die Datei im Py-Format (z. B.
my_example.py
). Und wenn diese Datei Funktionen hat,In der aufrufenden Funktion müssen Sie nur die folgenden Zeilen eingeben.
Dateiname: my_example2.py
============================
============================
quelle
import fn
(ohne Erweiterung) und verwende sie direkt in der Hauptdateifn.my_funcion()
. Wenn ichimport fn.py
versuche, die Datei py.py zu laden, existiert diese nicht. Die Verwendungfrom fn.py import funcname
hat auch nicht funktioniert. Vielen Dank.Benennen Sie das Modul in etwas anderes als "Datei" um.
Stellen Sie dann auch sicher, wenn Sie die Funktion aufrufen, dass:
1) Wenn Sie das gesamte Modul importieren, wiederholen Sie den Modulnamen, wenn Sie es aufrufen:
oder
2) oder wenn Sie bestimmte Funktionen, Funktionen mit einem Alias oder alle Funktionen mit * importieren, wiederholen Sie den Modulnamen nicht:
oder
oder
quelle
Funktionen aus der .py-Datei (können sich (natürlich) in einem anderen Verzeichnis befinden) können einfach importiert werden, indem zuerst Verzeichnisse und dann der Dateiname ohne die Erweiterung .py geschrieben werden:
Und später verwendet werden:
function_name()
quelle
In MathMethod.Py.
Innerhalb Main.Py
Ausgabe: 1200
quelle
Sie müssen nicht hinzufügen
file.py
.Bewahren Sie die Datei einfach am selben Speicherort auf wie die Datei, von der Sie sie importieren möchten. Dann importieren Sie einfach Ihre Funktionen:
quelle
Sie sollten die Datei am selben Speicherort wie die Python-Dateien haben, die Sie importieren möchten. Auch 'aus Dateiimportfunktion' reicht aus.
quelle
Fügen Sie einen Punkt (.) vor einen Dateinamen ein, 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 namens addFun importieren, die in b.py geschrieben ist, und b.py befindet sich dort im selben Verzeichnis
aus .b import addFun
quelle
Angenommen, die Datei, die Sie aufrufen möchten, ist anotherfile.py und die Methode, die Sie aufrufen möchten, ist method1. Importieren Sie dann zuerst die Datei und dann die Methode
Wenn Methode1 Teil einer Klasse ist, soll die Klasse Klasse1 sein
Erstellen Sie dann ein Objekt der Klasse 1, und nehmen Sie an, dass der Objektname ob1 lautet
quelle
In meinem Fall habe ich meine Datei benannt
helper.scrap.py
und konnte sie nicht zum Laufen bringen, bis ich zu geändert habehelper.py
quelle