Normalerweise fast man mehrere Funktionen zu Modulen zusammen. Wenn es wirklich sinn macht, mehrere Module zu haben, dann werden diese Module in ein Paket zusammengefasst. Dieses Paket wird installiert und nicht dadurch verfügbar gemacht, dass man innerhalb des Hauptprogramms manipuliert. Donnerstag 26. März 2015, 09:08
mein code hat ca. 2000 Zeilen
dies möchte ich in 3 Dateien ausgliedern
leider muss ich das programm aus unterschiedlichen Verzeichnissen Starten können
das mit den Paketen habe ich mir auch schon angeschaut
leider nicht so ganz verstanden
ich erstelle einen Ordner z. B. Funktionen
in diesem Ordner liegen z. b. drei Dateien + einen Datei
wie kann ich das paket den nun einladen? Aufrufen einer Javascript-Funktion aus einer anderen .js-Datei - ViResist. was macht die init datei wenn sie leer sein darf? BlackJack
Donnerstag 26. März 2015, 10:02
@sbfly: Programme aus unterschiedlichen Verzeichnissen starten zu können ist normal, da muss man nicht "leider" zu sagen. Der Ordner in dem der Ordner mit dem Package liegt muss im Suchpfad für Module liegen.
Python Funktion Aus Anderer Datei Aufrufen 2
02-04-2008, 23:16
#1
Registrierter Benutzer
Hallo
Ich habe folgende file struktur:
Code:
misc
|--> (mit funktion def gatherSysInfo())
wenn ich nun in folgendes mache:
import misc
therSysInfo()
heisst es AttributeError: 'module' object has no attribute 'sysinfo' wobei ich ja kein attribute sondern die funktion aufrufen möchte...
kann da jemand weiter helfen? 04-04-2008, 06:57
#2
Ich hätte das so importiert:
import sinfo
Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen! 07-04-2008, 11:49
#3
hallo
es hat bisschen weiter geholfen. Externes Programm aus python programm heraus ausführen? (Computer, Programmieren, Computersprache). nun gibts noch diese meldung:
NameError: global name 'gatherSysInfo' is not defined
gibt es in python namespaces oder etwas, was ich beachten muss? ich habe desweiteren die funktion auch nicht public/private/protected markiert... muss ich sowas noch tun? 07-04-2008, 12:34
#4
Entweder
from sinfo import gatherSysInfo...
gatherSysInfo()
oder
import sinfo...
sollten es tun. Speziell markieren musst du die Funktion nicht. 07-04-2008, 13:09
#5
habe die 2te variante gewählt.
Python Funktion Aus Anderer Datei Aufrufen 10
Klicken Sie dann mit der rechten Maustaste auf die Verknüpfung und wählen Sie Eigenschaften. Wählen Sie auf der Registerkarte Verknüpfung das Textfeld Ziel: und fügen Sie cmd /k vor dem Pfad hinzu und klicken Sie auf OK. Die Verknüpfung sollte jetzt Ihr Skript ausführen, ohne zu schließen und Sie brauchen die input('Hit enter to close') Beachten Sie, wenn Sie mehr als eine Version von Python auf Ihrem Rechner haben, fügen Sie den Namen der benötigten Python-Executable zwischen cmd / k und dem folgenden scift-Pfad hinzu: cmd /k python3 "C:\Users\\Documents\"
cmd /k ist der typische Weg, um eine Konsolenanwendung (nicht nur Python) mit einem Konsolenfenster zu öffnen, das nach dem Schließen der Anwendung erhalten bleibt. Python funktion aus anderer datei aufrufen den. Der einfachste Weg, um das zu tun, ist, Win + R zu drücken, cmd /k und dann das gewünschte Skript per Drag & Drop in den Run-Dialog zu ziehen.
Python Funktion Aus Anderer Datei Aufrufen 1
In den letzten Kapiteln haben wir fleißig Funktionen erstellt. Wir könnten durch "Copy-and-paste" diese einfach immer wieder in neue Projekte einfügen. Dagegen sprechen mehrere Dinge. Unser Code wird unnötig aufgebläht, da wir in jeder Programmdatei (und ein Programm kann ja aus mehreren Dateien durchaus bestehen) den Code integrieren müssten und Fehler sich so fleißig "vermehren" und die Beseitigung dementsprechend aufwendig wird. Das beste Argument ist, dass es eine sehr viel einfachere Vorgehensweise gibt. Jetzt wäre es doch sehr praktisch alle unsere Funktionen in einer Datei zu haben, dir wir immer wieder in unseren Projekten verwenden. Das geht in Python sehr einfach. Man spricht in Python von Modulen. Python funktion aus anderer datei aufrufen 10. Schauen wir uns die Verwendung von Modulen an, dann sind die Vorteile schnell griffig und verständlich. Dazu gibt es den import -Befehl. Wichtig dabei ist, dass beide Dateien im selben Verzeichnis sich befinden. Erstellen wir als Erstes unsere Funktionssammlung in der Datei "". In unserer Sammlung von Funktionen haben wir 2 Beispielfunktionen, von denen wir annehmen, dass wir diese immer wieder und in verschiedenen Projekten benötigen.
Varianten:
bild_speichern()
bild_speichern("", "/home/pi/")
bild_speichern(datei="")
bild_speichern(wohin="/home/pi/")
bild_speichern(datei="", wohin="/home/pi/")
bild_speichern(wohin="/home/pi/", datei="")
Dein Problem bezüglich "dann bleibt das Hauptprogramm stehen" hat damit zu tun dass immer nur eine Sache auf ein mal ausgeführt / verarbeitet werden kann. Solange das Script also mit einem Befehl beschäftigt ist kann nichts anderes parallel ausgeführt werden und somit wird das Script blockiert. Vergleichbar mit einem Konsolen-Befehl, der deine Konsole auch solange blockiert bis der Befehl beendet wurde. Module in Python nutzen: Programmcode-Sammlung für Projekte. Das lässt sich natürlich auch umgehen - aber ob das in deinem Fall wirklich nötig ist? Bezüglich Parallele Ausführung findest du auch hier weitere Beispiele: FAQ => Nützliche Links / Linksammlung => python: mehrere Funktionen parallel laufen lassen und sauber beenden (multiprocessing) FAQ => Nützliche Links / Linksammlung => python: beenden FAQ => Nützliche Links / Linksammlung => python: Tkinter: Im Hintergrund zählen..