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!!
Hilfe Neuling
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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.
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.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@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.
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.
Danke für die schnelle beantwortung
das modul liegt unter
http://www.instructables.com/files/orig ... EY3A4PG.py
Danke
das modul liegt unter
http://www.instructables.com/files/orig ... EY3A4PG.py
Danke
@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).
Prüfe zunächst einmal, ob LEDcubeCore installiert ist und importiert werden kann (wie cofi schon schrieb).
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Das 2. Skript muss zu "LEDcubeCore.py" umbenannt werden und im selben Verzeichnis wie das andere Skript liegen. Damit sollte es funktionieren.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
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
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
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Offensichtlich hast du nicht das gemacht, was ich dir gesagt habe. Mehr kann ich dir mit den Infos nicht sagen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@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
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
@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.)
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.)
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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.
Verschieben mal das `try:` aus Zeile 889 in Zeile 896 (d.h. nach den .clear() Aufrufen) und zeige uns den Fehler der dann auftritt.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@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
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
@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.
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
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

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.
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.
@_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.
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.
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.
"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
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
Code: Alles auswählen
try:
#setup multiplexer and shift registers
multiplexer = Multiplexer()
#clear the shift registers
multiplexer.register1.clear()