Seite 1 von 1
Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 20:41
von PeterL
Hallo Leute,
ich habe ein Script programmiert, was mir eine Datei kopieren soll.
Die Kopierfunktion habe ich in einer Funktion ausgelagert.
Wenn ich das Script mit Funktion starte, kopiert mir das Script die Datei ohne Fehler.
Wenn ich die Funktion importiere mit
dann erhalte ich immer
eine Fehlermeldung. Die Scripte liegen in einem angelegten extra unter Ordner.
C:\Users\XXX\Pyhton\Scripte\Bit_Copy
Traceback (most recent call last):
File "C:\Users\XXX\Pyhton\Scripte\Bit_Copy\MeinBackupStart.py", line 37, in <module>
rückgabe4 = BitCopy.kopieren(quellpfad,zielpfad)
Kann mir jemand dabei helfen ?
Danke...
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 20:51
von sparrow
Wie lautet denn die Fehlermeldung?
Module werden klein gescrheiben.
"Bit_Copy" ist etwas anderes als "BitCopy".
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 20:57
von PeterL
sparrow hat geschrieben: Montag 21. Februar 2022, 20:51
Wie lautet denn die Fehlermeldung?
Module werden klein gescrheiben.
"Bit_Copy" ist etwas anderes als "BitCopy".
Die Fehlermeldung lautet:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\XXX\Pyhton\scripte\Bit_Copy\MeinBackupStart.py", line 37, in <module>
rückgabe4 = BitCopy.kopieren(quellpfad,zielpfad)
Bit_Copy ist der angelegte Unterordner. Und BitCopy.py ist mein Script.
Und mit MeinBackupStart.py versuche ich BitCopy.py zu starten.
Bis dann...
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 21:10
von sparrow
Zeig doch bitte den kompletten Traceback und nicht immer so Häppchen. Wie soll man dir denn so helfen?
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 21:13
von PeterL
sparrow hat geschrieben: Montag 21. Februar 2022, 21:10
Zeig doch bitte den kompletten Traceback und nicht immer so Häppchen. Wie soll man dir denn so helfen?
Hallo, wie soll ich dir den kompletten Traceback zeigen ???
Wo ist der ???
Bis Dann...
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 21:50
von __deets__
Du kopierst teile davon. Nicht alles.
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 22:14
von PeterL
__deets__ hat geschrieben: Montag 21. Februar 2022, 21:50
Du kopierst teile davon. Nicht alles.
Hallo, ich habe die Fehlermeldung schon 2 mal kopiert.???
Sie wird im Ausgabefenster ausgegeben.
Komisch ist es das ich das mein Programm ohne Fehlermeldung starten kann.
Und aus einem anderen Script heraus es nicht geht.
Bis dann...
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 22:20
von sparrow
Nein, du hast _Teile_ der Fehlermeodung kopiert.
Guck mal, da steht sogar:
During handling of the above exception, another exception occurred:
Above = _Darüber_ Da muss also noch etwas oben drüber gestanden haben. Und wahrscheinlich noch etwas unten drunter. Es nützt nichts, uns zu zeigen, in welcher Zeile ein Fehler auftritt, wenn du den Teil weg lässt, in dem steht, _welcher_ Fehler aufgetreten ist.
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 22:36
von PeterL
sparrow hat geschrieben: Montag 21. Februar 2022, 22:20
Nein, du hast _Teile_ der Fehlermeodung kopiert.
Guck mal, da steht sogar:
During handling of the above exception, another exception occurred:
Above = _Darüber_ Da muss also noch etwas oben drüber gestanden haben. Und wahrscheinlich noch etwas unten drunter. Es nützt nichts, uns zu zeigen, in welcher Zeile ein Fehler auftritt, wenn du den Teil weg lässt, in dem steht, _welcher_ Fehler aufgetreten ist.
Hallo,
ja es gibt da noch mehr Fehlermeldungen. Die beziehen sich aber auf das Hauptprogramm.
Es werden in den Modulen die ich importiert habe Fehler ausgelöst. Sehr viele sogar.
Das ist aber egal da mein Hauptprogramm Fehlerfrei Läuft.
Erst wenn ich den Aufruf aus einen Script starte werden mir Fehlermeldungen ausgegeben.
Die Kopierfunktion kann keine Dateien kopieren.
Das Hauptprogramm befindet sich in einem Unterordner, der auch nicht im Suchpfad angegeben wird. Das Script mit dem ich das Hauptprogramm aufrufe liegt im Suchpfad, ich denke das ist der Fehler. Irgendwie werden die Pfade zum kopieren nicht an das Hauptprogramm übergeben.
Ich importiere das so
import Bit_Copy.BitCopy
Ich gebe den Ordner an, und dann mein Kopierscript
Alle anderen Funktionen werden beim externen Aufruf abgearbeitet ohne Fehler. Das Hauptprogramm läuft ohne Fehler. ??
Das liegt nicht an den Modulen die verwende, die sind ok.
Der Aufruf und die Übergaben geht nicht.
Bis dann...
Re: Modul Funktion aufrufen
Verfasst: Montag 21. Februar 2022, 22:48
von Sirius3
Wenn Du so genau weißt, was der Fehler ist, dann brauchst Du ja unsere Hilfe nicht.
Re: Modul Funktion aufrufen
Verfasst: Dienstag 22. Februar 2022, 00:11
von PeterL
Sirius3 hat geschrieben: Montag 21. Februar 2022, 22:48
Wenn Du so genau weißt, was der Fehler ist, dann brauchst Du ja unsere Hilfe nicht.
Hallo,
doch eigentlich schon, ich kann mir den Fehler nicht erklären. Es muss doch möglich sein eine Funktion aus einem anderem Modul aufzurufen. Weil das Hauptprogramm läuft.
Irgendwas mache ich falsch beim Importieren. Ich habe schon Google befragt YouTube Videos gesehen, alles nachgemacht, es geht nicht.
Bis dann...
Re: Modul Funktion aufrufen
Verfasst: Dienstag 22. Februar 2022, 06:22
von einfachTobi
PeterL hat geschrieben: Dienstag 22. Februar 2022, 00:11
Es muss doch möglich sein eine Funktion aus einem anderem Modul aufzurufen.
Jo, das ist möglich. Aber du weigerst dich ja partout die
vollständige Fehlermeldung zu posten. So kann man nicht helfen. Wenn du denkst, dass der Rest nicht relevant sei, liegst du nun mal falsch.
Re: Modul Funktion aufrufen
Verfasst: Dienstag 22. Februar 2022, 17:00
von PeterL
einfachTobi hat geschrieben: Dienstag 22. Februar 2022, 06:22
PeterL hat geschrieben: Dienstag 22. Februar 2022, 00:11
Es muss doch möglich sein eine Funktion aus einem anderem Modul aufzurufen.
Jo, das ist möglich. Aber du weigerst dich ja partout die
vollständige Fehlermeldung zu posten.
Hallo,
ja du hast ja Recht. Ich war davon überzeugt das die Fehler die in anderen Modulen auftreten nicht wichtig sind. Wie gesagt das Hauptprogramm läuft, und die Module auch.
Naja ich habe mir das ganze nochmal angesehen, und tatsächlich zwei Fehler gefunden.
Startet man das Hauptprogramm sind dort keine Fehler. Erst wen man das Hauptprogramm extern aus, einem anderen Script startet, treten Fehler auf. Was ich komisch finde, einmal läuft alles super, dann plötzlich geht nichts mehr. Ein Fehler gab es in der
Angeblich war es nicht richtig eingerückt ?
Der zweite Fehler war in der Log Funktion die Fehler protokoliert.
Hier musste ich mit.
isFile = os.path.isfile('C:\\Temp\BitCopy.txt')
Den Pfad selber angeben. Vorher stand das alles in einer Variable. ?
Ok nun kann ich extern und intern mein Programm aufrufen.
Das war eine sehr lange Fehlersuche, hat aber auch irgendwie Spaß gemacht.
Danke Leute..
Re: Modul Funktion aufrufen
Verfasst: Dienstag 22. Februar 2022, 17:22
von __blackjack__
@PeterL: Das was Du da zeigst ist nicht nur angeblich nicht richtig eingerückt, das ist *tatsächlich* nicht richtig eingerückt.
Und `Exception` ist *sehr* allgemein, da besteht also eine grosse Gefahr, dass der Code in dem ``except:``-Block nicht jede Ausnahme sinnvoll behandelt und nicht die Fehlersuche erschwert.
Was Du mit dem Pfad sagen willst, ist mir nicht so ganz klar.
Letztlich deutet die Beschreibung aber darauf hin, dass Du mit Pfaden relativ zum aktuellen Arbeitsverzeichnis gearbeitet hast und falsche Annahmen darüber getroffen hast, was dieses Verzeichnis konkret ist. Beliebter Fehler ist anzunehmen, dass das der Pfad ist, in dem das Python-Programm liegt.
Edit: Und wohl auch, dass Du eine falsche Ursache vermutest, also den Fehler gar nicht wirklich gefunden sondern nur zufällig korrigiert hast, ohne die Ursache wirklich verstanden zu haben.
Re: Modul Funktion aufrufen
Verfasst: Dienstag 22. Februar 2022, 18:15
von PeterL
__blackjack__ hat geschrieben: Dienstag 22. Februar 2022, 17:22
@PeterL: Das was Du da zeigst ist nicht nur angeblich nicht richtig eingerückt, das ist *tatsächlich* nicht richtig eingerückt.
Und `Exception` ist *sehr* allgemein, da besteht also eine grosse Gefahr, dass der Code in dem ``except:``-Block nicht jede Ausnahme sinnvoll behandelt
Was Du mit dem Pfad sagen willst, ist mir nicht so ganz klar.
Edit: Und wohl auch, dass Du eine falsche Ursache vermutest, also den Fehler gar nicht wirklich gefunden sondern nur zufällig korrigiert hast, ohne die Ursache wirklich verstanden zu haben.
Hallo,
der Pfad in den Tempordner, dort wird BitCopx.txt angelegt. Das ist mein Fehlerprotokoll.
Dort werden Fehlermeldungen abgelegt.
Mit den abfangen von Fehlern beschäftige ich mich dann nochmal.
Tatsächlich ist es so, das ich es wirklich nicht verstehe, weswegen es einmal intern läuft,
und extern nicht. Das einrücken scheint intern ok zu. Extern sagt er mir das es ein Fehler sei.
Nun ja es läuft das ich wichtig, und ich kann meine Backups machen.
Python habe ich im Standartpfad installiert.
Bis dann...
Re: Modul Funktion aufrufen
Verfasst: Dienstag 22. Februar 2022, 20:00
von __deets__
Das abhaengig von der Aufrufstelle (direkt oder import) dieser Fehler auftritt, ist voellig unmoeglich. Die Einrueckung wird in beiden Faellen sofort am Anfang ueberprueft, und ist global zu pruefen. Wenn das dein Problem ist, dann hast du irgendwie zwei verschiedene Versionen auf der Platte, zB auch nur eine alte .pyc-Datei, die fehlerfrei ist, und die neue hat das Problem.
Re: Modul Funktion aufrufen
Verfasst: Mittwoch 23. Februar 2022, 16:40
von PeterL
__deets__ hat geschrieben: Dienstag 22. Februar 2022, 20:00
Das abhaengig von der Aufrufstelle (direkt oder import) dieser Fehler auftritt, ist voellig unmoeglich.
Hallo,
es kann an allen möglichen gelegen haben. Wie der Fehler zustande gekommen ist, ist mir unbekannt. Komisch fand ich nur das auch Fehler in Modulen ausgelöst wurden, die ja eigentlich fehlerfrei laufen sollten. Intern ging es extern nicht.
Ich arbeite nun weiter an meinem Kopierprogramm.
Bis die Tage...