Seite 1 von 2
Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 10:07
von golfbubi
Hallo bin Neuling in Python und habe ein problem mit dem in nicht weiterkomme.
In einen vorgeschriebenen Script (multiplexer) kommt immer ein Fehler der sich für mich nicht nachvollziehen lässt.
Bitte um Hilfe.
um folgendes Script handelt es sich:
http://www.instructables.com/files/orig ... EY3A4PS.py
es kommt ein Fehler in der Zeile 948
NameError: name 'multiplexer' is not defined
usw.
somit startet das Script auch nicht.
Für Begrifflichkeiten bitte ich als Neuling um entschuldigung!!
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 10:34
von cofi
Willkommen im Forum und zu Python!
Das Script benoetigt noch ein weiteres Modul "LEDcubeCore". Da ich das leider nicht finden kann, kann ich auch nicht sagen, dass es der definitive Grund fuer den Fehler ist, aber ich nehme stark an, dass es nicht installiert ist.
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 10:37
von kbr
Das Problem entsteht schon in Zeile 891. Sprich mal mit dem Autor des Skriptes, warum die entsprechende Klassen-Implementierung oder der Import fehlt.
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 10:41
von BlackJack
@golfbubi: Mach aus dem nackten ``except:`` ein paar Zeilen davor mal ein ``finally:`` — dann bekommst Du die Ausnahme die zum Abbruch des Programms führt auch zu sehen. Wieder mal ein schönes Beispiel warum ``except:``\s ohne konkrete Ausnahmen beziehungsweise Ausnahmebehandlung die Ausnahmen einfach durch ein „hier hat was nicht funktioniert“-``print`` ersetzen sch*#&… sind.
Der Sternchen-Import ist auch nervig. Ohne das Modul zu kennen kann man jetzt nicht sagen ob Namen die nirgends definiert sind, wie `points` nun ein Programmierfehler sind oder tatsächlich aus diesem Modul kommen.
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 10:47
von golfbubi
Danke für die schnelle beantwortung
das modul liegt unter
http://www.instructables.com/files/orig ... EY3A4PG.py
Danke
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 10:52
von kbr
@golfbubi: Nun hast Du schon mehrere unterschiedliche Antworten erhalten, da das Skript mit einem "nackten" except und einem Sternchen-Import zwei Dinge macht, die in Python aus gutem Grund unterlassen werden sollten: Es erschwert die Fehlersuche und führt ggf. sogar zu Seiteneffekten.
Prüfe zunächst einmal, ob LEDcubeCore installiert ist und importiert werden kann (wie cofi schon schrieb).
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 11:19
von cofi
Das 2. Skript muss zu "LEDcubeCore.py" umbenannt werden und im selben Verzeichnis wie das andere Skript liegen. Damit sollte es funktionieren.
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 19:51
von golfbubi
Es will einfach nicht funktionieren. Ich verstehe nicht wirklich viel von Python da ich quasi wirklich in den Kinderschuhen stehe.
Die Lösungen die mir vorgeschlagen wurden ,,mit except,, und der Dateiumbennenung ergaben den gleichen fehler wie Anfang´s
root@raspberrypi:/home# sudo python LEDcube.py
Initializing multiplexer...
Quitting due to unknown error, details are as follows:
Traceback (most recent call last):
File "LEDcube.py", line 948, in <module>
multiplexer.register1.clear()
NameError: name 'multiplexer' is not defined
Das einzige was ich nicht verstanden habe is Modul installieren?
Den Autor des Scriptes kenne ich nicht und kann ihn auch nicht kontaktieren.
Danke
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 21:02
von cofi
Offensichtlich hast du nicht das gemacht, was ich dir gesagt habe. Mehr kann ich dir mit den Infos nicht sagen.
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 22:05
von golfbubi
@cofi
Also die beide Scripte liegen im gleichen Verzeichniss )/home/pi und sind von vorne herein so benannt gewesen. Da ich mich wie ich schon sagte in keinsterweise nur im geringsten maße mit python auskenne hatte ich hier auf Hilfe gehofft. Schade
@all
Falls jemand doch noch einen hilfe Suchenden einen tipp geben kann findet die beiden Dateien und das um was es geht unter
http://www.instructables.com/id/Raspber ... /?ALLSTEPS
danke
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 23:10
von BlackJack
@golfbubi: Das ``except:`` durch ein ``finally:`` ersetzen hätte die eigentliche Fehlermeldung inklusive Traceback bringen sollen. Du behauptest aber es hätte sich dadurch nichts geändert, was nicht sein kann.
Ansonsten ist halt auch die Frage wieviel Sinn es macht sich mit Python-Quelltext zu beschäftigen ohne Python zu können. Und wenn das da nicht tut, wäre der erste Ansprechpartner wohl der Autor von dem Code. Wir kennen den ja auch nicht. (Also den Code.)
Re: Hilfe Neuling
Verfasst: Mittwoch 11. November 2015, 23:16
von cofi
Das kann so allerdings nicht sein, denn wenn das Modul richtig benannt wird, gibt es eben `multiplexer` und der NameError kann nicht auftreten.
Verschieben mal das `try:` aus Zeile 889 in Zeile 896 (d.h. nach den .clear() Aufrufen) und zeige uns den Fehler der dann auftritt.
Re: Hilfe Neuling
Verfasst: Donnerstag 12. November 2015, 23:34
von golfbubi
@cofi
Also das habe ich getan:
"""---------------MAIN FUNCTION----------------"""
#setup multiplexer and shift registers
multiplexer = multiplexer()
#clear the shift registers
multiplexer.register1.clear()
multiplexer.register2.clear()
try:
#wait for ENTER to be pressed (the variable is never used, so I gave it a fun name!)
print " "
das kam raus:
root@raspberrypi:/home/pi# python LEDcube.py
File "LEDcube.py", line 891
multiplexer = multiplexer()
^
IndentationError: unexpected indent
Re: Hilfe Neuling
Verfasst: Freitag 13. November 2015, 00:14
von BlackJack
@golfbubi: Den Originalcode nehmen und aus dem besagten ``except:`` ein ``finally:`` machen ist weniger fehleranfällig. Und wieso ist `multiplexer` auf der rechten Seite der Zuweisung plötzlich klein geschrieben? Im Original fängt das mit einem Grossbuchstaben an.
Re: Hilfe Neuling
Verfasst: Sonntag 15. November 2015, 11:22
von golfbubi
so jetzt habe ich alles geändert, die Distribution mehrfach gewechselt und der Fehler bleibt der gleiche
Initializing multiplexer...
Quitting due to unknown error, details are as follows:
Traceback (most recent call last):
File "LEDcube.py", line 948, in <module>
multiplexer.register1.clear()
NameError: name 'multiplexer' is not defined
auch mit finally: statt dem except:
Was heißt das eigentlich immer mit dem multiplexer fehler ? kennt das script den Befehl nicht oder
der autor des Script´s habe ich mittlerweile auch kontaktiert und er hat auch keinen Rat und versteht es nicht, da es bei Ihm und anderen problemlos funktioniert.
sind den irgendwelche Module außer dem gpio python noch notwendig?
es ist nur ägerlich das das ganze was am Raspi dranhängt nich funktioniert und ich im Netz auch keine alternative dazu finden kann.
vielleicht hat hier irgendjemand noch eine geniale Idee dazu.
Vorab schon mal an alle Danke für die zwar nicht erfolgreiche Hilfe

Re: Hilfe Neuling
Verfasst: Sonntag 15. November 2015, 11:40
von __deets__
Das ist kein Befehl, sondern das Ergebnis aus genau der Zeile davor: multiplexer = Multiplexer(). Hat also auch nichts mit Distributionen oder aehnlichem zu tun.
Ich kann mir schwer vorstellen, dass du da nicht selbst einen Fehler eingebaut hast. Poste doch mal bitte *deinen* Code, und zwar genau so wie er auf dem PI (nicht) laeuft.
Re: Hilfe Neuling
Verfasst: Sonntag 15. November 2015, 11:48
von golfbubi
@_deets_
Schau doch mal bitte im dritten oder viert post von mir, dort findest du den Link zu dem Bauwerk incl. den beiden Python Files.
Diese beiden habe ich auf dem Raspi in den Home und anderen ordner kopiert.
aber es will einfach nicht starten.
Re: Hilfe Neuling
Verfasst: Sonntag 15. November 2015, 11:52
von __deets__
Ich hab' deine Posts schon genau gelesen, und auch die Dateien angeschaut - und dort ist es klar, dass dieser Fehler so *NICHT* vorkommen kann. Du musst also einen Fehler produziert haben in den Dateien, die DU auf deinem Rechner hast. Darum habe ich darum gebeten, dass du die hier postest.
Re: Hilfe Neuling
Verfasst: Sonntag 15. November 2015, 12:08
von golfbubi
@_deets_
Ich stehe gerade auf dem Schlauch und verstehe Bahnhof
ich habe die beiden Dateien so wie ich sie gedownloadet habe auf den raspi kopiert.
welche dateien auf den Rechner?
Re: Hilfe Neuling
Verfasst: Sonntag 15. November 2015, 12:18
von __deets__
"Der Rechner" == "raspi". Und wenn die Fehlermeldung, die du bekommst, stimmt (und sie sieht ja "gut" aus im Sinne von sie ist nachvollziehbar mit den original Quellen, die Zeilennummer stimmt usw.), dann muss deine Kopie auf dem Rechner/raspi *falsch* sein, denn im Original Quellcode steht
Code: Alles auswählen
try:
#setup multiplexer and shift registers
multiplexer = Multiplexer()
#clear the shift registers
multiplexer.register1.clear()
und damit ist multiplexer an der Stelle, wo es bei dir hakt (letzte Zeile in dem Snippet) im Original 3 Zeilen vorher definiert worden. Es kann also nicht sein, dass du diesen Fehler bekommst, *AUSSER* dein Code sieht anders aus. Und darum sollst du ihn hier zeigen. Wieviel deutlicher kann man das ausdruecken? :K