Jump to content

[Python] Fehler: IndentationError


Recommended Posts

Geschrieben

Hallo,

 

ich habe mich mal an Python versucht um auf meinem Raspberry Pi ein GUI zu erstellen. Beim starten des Scripts bekomme ich aber die folgende Fehlermeldung:

File "GUI.py", line 24

  ipcon = IPConnection() # Create IP connection

      ^

IndentationError: expected an indented block

 

HOST = "127.0.0.1"
PORT = 4223
UID = "jNw"

from Tkinter import *
from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_remote_switch import RemoteSwitch
import os
master = Tk()

master.title("GUI")

w = Canvas(master, width=300, height=200)
w.pack()

def shutdown():
    os.system("sudo shutdown -h now")

def reboot():
    os.system("sudo shutdown -r now")

def light_on():
    if __name__ == "__main__":
    ipcon = IPConnection() # Create IP connection
    rs = RemoteSwitch(UID, ipcon) # Create device object

    ipcon.connect(HOST, PORT) # Connect to brickd
    # Don't use device before ipcon is connected

    # Switch socket with house code 17 and receiver code 1 on.
    # House code 17 is 10001 in binary (least-significant bit first)
    # and means that the DIP switches 1 and 5 are on and 2-4 are off.
    # Receiver code 1 is 10000 in binary (least-significant bit first)
    # and means that the DIP switch A is on and B-E are off.
    rs.switch_socket_b(1, 1, RemoteSwitch.SWITCH_TO_ON)

def light_off():
    if __name__ == "__main__":
    ipcon = IPConnection() # Create IP connection
    rs = RemoteSwitch(UID, ipcon) # Create device object

    ipcon.connect(HOST, PORT) # Connect to brickd
    # Don't use device before ipcon is connected

    # Switch socket with house code 17 and receiver code 1 on.
    # House code 17 is 10001 in binary (least-significant bit first)
    # and means that the DIP switches 1 and 5 are on and 2-4 are off.
    # Receiver code 1 is 10000 in binary (least-significant bit first)
    # and means that the DIP switch A is on and B-E are off.
    rs.switch_socket_b(1, 1, RemoteSwitch.SWITCH_TO_OFF)

b=Button(master, text= "Shutdown", command=shutdown)
b.pack()

b=Button(master, text= "Reboot", command=reboot)
b.pack()

b=Button(master, text= "Licht an", command=light_on)
b.pack()

b=Button(master, text= "Licht aus", command=light_off)
b.pack()

mainloop()

 

Grüße

Geschrieben

Da stehen wahrscheinlich Leerzeichen vor, die da nicht hingehören. Versuche die mal weg zu machen. Leerzeichen vor Befehlen dürfen und müssen nur bei schleifen, if und try Anweisungen eingesetzt werden. Dort sind sie allerdings auch erforderlich damit python erkennt welche Befehle zu der entsprechenden Abfrage gehören.

Geschrieben

Oh du hast recht. Mein Fehler  ::). Du hast zu wenig! Du hast ja die Abfrage if __name__ usw.

 

Der Code darunter hat die gleiche Einrückung. Der muss weiter eingerückt werden, wenn er dazu gehören soll.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...