Fehler beim ausführen des Python Scripts
Verfasst: Samstag 27. Oktober 2018, 21:28
Hallo,
habe ein Problem mit meinem Python Script:
import pyglet
import pyglet
from pyglet.window import key
import os
import datetime
import time
def power():
if window.MENUs=="SN":
window.MENUs="SM"
else:
window.MENUs="SN"
window = pyglet.window.Window()
keys = key.KeyStateHandler()
window.push_handlers(keys)
window.startVorspulen=False
window.startRueckspulen=False
window.versucheVorspulen=False
window.versucheRueckspulen=False
window.zeitZiellauf=[0,0]
window.zeitPosition=0
window.s1="X"
window.s2=" "
window.MENUs=str ("SN")
window.start_wiedergabe=False
window.player = pyglet.media.Player()
script_dir = os.path.dirname(os.path.realpath(__file__))
musikordner = os.path.join(script_dir,'musik')
window.alleMusikOrdner = os.listdir (musikordner)
window.alleMusikOrdner = [os.path.join(musikordner,ordner) for ordner in window.alleMusikOrdner]
pyglet.resource.path = window.alleMusikOrdner
pyglet.resource.reindex()
window.aktuelleOrdnernr = 0
label = pyglet.text.Label(datetime.datetime.now().strftime("%d-%m-%y %H-%M-%S"),
font_name='Times New Roman',
font_size=20,
x=window.width//2, y=400,
anchor_x='center', anchor_y='center')
label2 = pyglet.text.Label("",
font_name='Times New Roman',
font_size=20,
x=window.width//2, y=window.width//2,
anchor_x='center', anchor_y='center')
label3 = pyglet.text.Label("",
font_size=20,
x=window.width//2, y=100,
anchor_x='center', anchor_y='center')
label4 = pyglet.text.Label("",
font_size=20,
x=window.width//2, y=50,
anchor_x='center', anchor_y='center')
@window.event
def on_draw():
window.clear()
label.draw()
label2.draw()
label3.draw()
label4.draw()
def mp3(dt):
label2.text=window.liederInOrdner[window.aktuellesLied]
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
def update(dt):
label.text = datetime.datetime.now().strftime("%d-%m-%y %H-%M-%S")
if window.MENUs=="SN":
label2.text = ""
label3.text = ""
label4.text = ""
label4.text = "Standby"
if window.MENUs=="SM":
label2.text = "("+window.s1+")MP3 Player"
label3.text = "("+window.s2+")Bluetooth"
label4.text = ""
if window.MENUs=="MN":
window.player.delete()
window.player = pyglet.media.Player()
window.liederInOrdner = os.listdir (ordnerName)
window.liederInOrdner = [lied for lied in window.liederInOrdner if "mp3" in lied]
#print liederInOrdner
for lied in window.liederInOrdner:
window.player.queue(pyglet.resource.media(lied))
if window.start_wiedergabe==False:
window.player.play
window.start_wiedergabe=True
window.aktuellesLied=liednr
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
mp3(dt)
time1 = int(window.player.time)
print window.player.time
print window.player.source.duration
time2 = int(window.player.source.duration)
t1s = time1 % 60
t1m = int(time1/60)
t2s = time2 % 60
t2m = int(time2/60)
label4.text = '{:02d}:{:02d}/{:02d}:{:02d}'.format(t1m,t1s,t2m,t2s)
def zeitTicker(dt):
if window.ziellauf:
if " " not in label3.text:
window.labelBackup = label3.text
if window.zeitPosition==0:
label3.text = ' :{:02d}'.format(window.zeitZiellauf[window.zeitPosition])
else:
label3.text = window.labelBackup
pyglet.clock.schedule_interval(update, 0.5)
#def ladeOrdner(ordnerName, liednr=0):
# window.player.delete()
# window.player = pyglet.media.Player()
# window.liederInOrdner = os.listdir (ordnerName)
# window.liederInOrdner = [lied for lied in window.liederInOrdner if "mp3" in lied]
# #print liederInOrdner
# for lied in window.liederInOrdner:
# window.player.queue(pyglet.resource.media(lied))
# if window.start_wiedergabe==False:
# window.player.play
# window.start_wiedergabe=True
# window.aktuellesLied=liednr
#ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
def naechstesLied():
if window.aktuellesLied < len(window.liederInOrdner)-1:
window.aktuellesLied +=1
label2.text=window.liederInOrdner[window.aktuellesLied]
window.player.next_source()
else:
window.aktuellesLied =0
label2.text=window.liederInOrdner[window.aktuellesLied]
window.player.next_source()
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
def vorherigesLied():
if window.aktuellesLied==0:
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr],len(window.liederInOrdner)-1)
label2.text=window.liederInOrdner[window.aktuellesLied]
else:
window.aktuellesLied -=1
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr],window.aktuellesLied)
label2.text=window.liederInOrdner[window.aktuellesLied]
@window.event
def on_key_press(symbol, modifiers):
if symbol == key.P:
# if window.MENUs=="SN":
# window.MENUs="SM"
# else:
# window.MENUs=="SN"
power()
if symbol == key.SPACE:
if window.MENUs=="MN":
if window.player.playing:
window.player.pause()
else:
window.player.play()
elif symbol ==key.ESCAPE:
if window.MENUs=="MN":
window.MENUs="SM"
if window.MENUs=="MM":
window.MENUs="MN"
if window.MENUs=="BN":
window.MENUs="SM"
if window.MENUs=="BM":
window.MENUs="BN"
if window.MENUs=="Z":
window.MENUs="MM"
elif symbol == key.RIGHT:
if window.MENUs=="MN":
naechstesLied()
if window.MENUs=="Z":
if window.zeitPosition == 0:
window.zeitPosition = 1
elif symbol == key.LEFT:
if window.MENUs=="MN":
vorherigesLied()
if window.MENUs=="Z":
if window.zeitPosition == 1:
window.zeitPosition = 0
elif symbol == key.PLUS:
if window.MENUs=="MN":
next_dir ()
elif symbol == key.Z:
Ziellauf ()
if symbol == key.DOWN:
if window.MENUs=="SM":
window.s1=" "
window.s2="x"
if window.MENUs=="Z":
min_m = window.zeitZiellauf[0]
sec_m = window.zeitZiellauf[1]
timemax = int(window.player.source.duration)
smin = 0
mmin = 0
if sec_m==0:
s=False
else:
s=True
if min_m==0:
m=False
else:
m=True
if window.zeitPosition ==0:
if m==True:
window.zeitZiellauf[window.zeitPosition]-=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if m==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if window.zeitPosition ==1:
if s==True:
window.zeitZiellauf[window.zeitPosition]-=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if s==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if symbol == key.UP:
if window.MENUs=="SM":
window.s1="x"
window.s2=" "
if window.MENUs=="Z":
min_m = window.zeitZiellauf[0]
sec_m = window.zeitZiellauf[1]
timemax = int(window.player.source.duration)
smax = timemax % 60
mmax = int(timemax/60)
if sec_m<smax:
s=True
else:
s=False
if min_m<mmax:
m=True
else:
m=False
if window.zeitPosition ==0:
if m==True:
window.zeitZiellauf[window.zeitPosition]+=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if m==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if window.zeitPosition ==1:
if s==True:
window.zeitZiellauf[window.zeitPosition]+=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if s==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if symbol == key.ENTER:
if window.MENUs=="SM":
if window.s1=="X":
window.MENUs="MN"
if window.s2=="X":
print "Bluetooth"
if window.MENUs=="Z":
springen()
window.MENUs="MN"
label2.text=window.liederInOrdner[window.aktuellesLied]
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
window.zeitZiellauf=[0,0]
def Ziellauf():
window.ziellauf=True
label2.text="Springe zu Zeit:"
label3.text = '--:--'
label4.text ="OK zum Bestaetigen"
def springen():
min_s = window.zeitZiellauf[0]
sec_s = window.zeitZiellauf[1]
min_s = min_s*60
Stempel = sec_s + min_s
if Stempel<window.player.source.duration:
window.player.seek(Stempel)
def next_dir():
if window.aktuelleOrdnernr<len(window.alleMusikOrdner)-1:
window.aktuelleOrdnernr +=1
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
label2.text=window.liederInOrdner[window.aktuellesLied]
else:
window.aktuelleOrdnernr =0
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
label2.text=window.liederInOrdner[window.aktuellesLied]
pyglet.app.run()
Wenn ich das Script starte und erst "P" und dann ENTER drücke, bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\niklas\Desktop\raspi_radio\ziellauf.py", line 296, in <module>
pyglet.app.run()
File "C:\Python27\lib\site-packages\pyglet\app\__init__.py", line 138, in run
event_loop.run()
File "C:\Python27\lib\site-packages\pyglet\app\base.py", line 142, in run
self._run()
File "C:\Python27\lib\site-packages\pyglet\app\base.py", line 154, in _run
timeout = self.idle()
File "C:\Python27\lib\site-packages\pyglet\app\base.py", line 275, in idle
redraw_all = self.clock.call_scheduled_functions(dt)
File "C:\Python27\lib\site-packages\pyglet\clock.py", line 346, in call_scheduled_functions
item.func(now - item.last_ts, *item.args, **item.kwargs)
File "C:\Users\niklas\Desktop\raspi_radio\ziellauf.py", line 86, in update
window.liederInOrdner = os.listdir (ordnerName)
NameError: global name 'ordnerName' is not defined
>>>
Ich hoffe, ihr könnt mir weiterhelfen!
MFG niklas schn.
habe ein Problem mit meinem Python Script:
import pyglet
import pyglet
from pyglet.window import key
import os
import datetime
import time
def power():
if window.MENUs=="SN":
window.MENUs="SM"
else:
window.MENUs="SN"
window = pyglet.window.Window()
keys = key.KeyStateHandler()
window.push_handlers(keys)
window.startVorspulen=False
window.startRueckspulen=False
window.versucheVorspulen=False
window.versucheRueckspulen=False
window.zeitZiellauf=[0,0]
window.zeitPosition=0
window.s1="X"
window.s2=" "
window.MENUs=str ("SN")
window.start_wiedergabe=False
window.player = pyglet.media.Player()
script_dir = os.path.dirname(os.path.realpath(__file__))
musikordner = os.path.join(script_dir,'musik')
window.alleMusikOrdner = os.listdir (musikordner)
window.alleMusikOrdner = [os.path.join(musikordner,ordner) for ordner in window.alleMusikOrdner]
pyglet.resource.path = window.alleMusikOrdner
pyglet.resource.reindex()
window.aktuelleOrdnernr = 0
label = pyglet.text.Label(datetime.datetime.now().strftime("%d-%m-%y %H-%M-%S"),
font_name='Times New Roman',
font_size=20,
x=window.width//2, y=400,
anchor_x='center', anchor_y='center')
label2 = pyglet.text.Label("",
font_name='Times New Roman',
font_size=20,
x=window.width//2, y=window.width//2,
anchor_x='center', anchor_y='center')
label3 = pyglet.text.Label("",
font_size=20,
x=window.width//2, y=100,
anchor_x='center', anchor_y='center')
label4 = pyglet.text.Label("",
font_size=20,
x=window.width//2, y=50,
anchor_x='center', anchor_y='center')
@window.event
def on_draw():
window.clear()
label.draw()
label2.draw()
label3.draw()
label4.draw()
def mp3(dt):
label2.text=window.liederInOrdner[window.aktuellesLied]
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
def update(dt):
label.text = datetime.datetime.now().strftime("%d-%m-%y %H-%M-%S")
if window.MENUs=="SN":
label2.text = ""
label3.text = ""
label4.text = ""
label4.text = "Standby"
if window.MENUs=="SM":
label2.text = "("+window.s1+")MP3 Player"
label3.text = "("+window.s2+")Bluetooth"
label4.text = ""
if window.MENUs=="MN":
window.player.delete()
window.player = pyglet.media.Player()
window.liederInOrdner = os.listdir (ordnerName)
window.liederInOrdner = [lied for lied in window.liederInOrdner if "mp3" in lied]
#print liederInOrdner
for lied in window.liederInOrdner:
window.player.queue(pyglet.resource.media(lied))
if window.start_wiedergabe==False:
window.player.play
window.start_wiedergabe=True
window.aktuellesLied=liednr
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
mp3(dt)
time1 = int(window.player.time)
print window.player.time
print window.player.source.duration
time2 = int(window.player.source.duration)
t1s = time1 % 60
t1m = int(time1/60)
t2s = time2 % 60
t2m = int(time2/60)
label4.text = '{:02d}:{:02d}/{:02d}:{:02d}'.format(t1m,t1s,t2m,t2s)
def zeitTicker(dt):
if window.ziellauf:
if " " not in label3.text:
window.labelBackup = label3.text
if window.zeitPosition==0:
label3.text = ' :{:02d}'.format(window.zeitZiellauf[window.zeitPosition])
else:
label3.text = window.labelBackup
pyglet.clock.schedule_interval(update, 0.5)
#def ladeOrdner(ordnerName, liednr=0):
# window.player.delete()
# window.player = pyglet.media.Player()
# window.liederInOrdner = os.listdir (ordnerName)
# window.liederInOrdner = [lied for lied in window.liederInOrdner if "mp3" in lied]
# #print liederInOrdner
# for lied in window.liederInOrdner:
# window.player.queue(pyglet.resource.media(lied))
# if window.start_wiedergabe==False:
# window.player.play
# window.start_wiedergabe=True
# window.aktuellesLied=liednr
#ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
def naechstesLied():
if window.aktuellesLied < len(window.liederInOrdner)-1:
window.aktuellesLied +=1
label2.text=window.liederInOrdner[window.aktuellesLied]
window.player.next_source()
else:
window.aktuellesLied =0
label2.text=window.liederInOrdner[window.aktuellesLied]
window.player.next_source()
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
def vorherigesLied():
if window.aktuellesLied==0:
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr],len(window.liederInOrdner)-1)
label2.text=window.liederInOrdner[window.aktuellesLied]
else:
window.aktuellesLied -=1
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr],window.aktuellesLied)
label2.text=window.liederInOrdner[window.aktuellesLied]
@window.event
def on_key_press(symbol, modifiers):
if symbol == key.P:
# if window.MENUs=="SN":
# window.MENUs="SM"
# else:
# window.MENUs=="SN"
power()
if symbol == key.SPACE:
if window.MENUs=="MN":
if window.player.playing:
window.player.pause()
else:
window.player.play()
elif symbol ==key.ESCAPE:
if window.MENUs=="MN":
window.MENUs="SM"
if window.MENUs=="MM":
window.MENUs="MN"
if window.MENUs=="BN":
window.MENUs="SM"
if window.MENUs=="BM":
window.MENUs="BN"
if window.MENUs=="Z":
window.MENUs="MM"
elif symbol == key.RIGHT:
if window.MENUs=="MN":
naechstesLied()
if window.MENUs=="Z":
if window.zeitPosition == 0:
window.zeitPosition = 1
elif symbol == key.LEFT:
if window.MENUs=="MN":
vorherigesLied()
if window.MENUs=="Z":
if window.zeitPosition == 1:
window.zeitPosition = 0
elif symbol == key.PLUS:
if window.MENUs=="MN":
next_dir ()
elif symbol == key.Z:
Ziellauf ()
if symbol == key.DOWN:
if window.MENUs=="SM":
window.s1=" "
window.s2="x"
if window.MENUs=="Z":
min_m = window.zeitZiellauf[0]
sec_m = window.zeitZiellauf[1]
timemax = int(window.player.source.duration)
smin = 0
mmin = 0
if sec_m==0:
s=False
else:
s=True
if min_m==0:
m=False
else:
m=True
if window.zeitPosition ==0:
if m==True:
window.zeitZiellauf[window.zeitPosition]-=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if m==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if window.zeitPosition ==1:
if s==True:
window.zeitZiellauf[window.zeitPosition]-=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if s==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if symbol == key.UP:
if window.MENUs=="SM":
window.s1="x"
window.s2=" "
if window.MENUs=="Z":
min_m = window.zeitZiellauf[0]
sec_m = window.zeitZiellauf[1]
timemax = int(window.player.source.duration)
smax = timemax % 60
mmax = int(timemax/60)
if sec_m<smax:
s=True
else:
s=False
if min_m<mmax:
m=True
else:
m=False
if window.zeitPosition ==0:
if m==True:
window.zeitZiellauf[window.zeitPosition]+=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if m==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if window.zeitPosition ==1:
if s==True:
window.zeitZiellauf[window.zeitPosition]+=1
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if s==False:
label3.text = '{:02d}:{:02d}'.format(window.zeitZiellauf[0],window.zeitZiellauf[1])
if symbol == key.ENTER:
if window.MENUs=="SM":
if window.s1=="X":
window.MENUs="MN"
if window.s2=="X":
print "Bluetooth"
if window.MENUs=="Z":
springen()
window.MENUs="MN"
label2.text=window.liederInOrdner[window.aktuellesLied]
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
window.zeitZiellauf=[0,0]
def Ziellauf():
window.ziellauf=True
label2.text="Springe zu Zeit:"
label3.text = '--:--'
label4.text ="OK zum Bestaetigen"
def springen():
min_s = window.zeitZiellauf[0]
sec_s = window.zeitZiellauf[1]
min_s = min_s*60
Stempel = sec_s + min_s
if Stempel<window.player.source.duration:
window.player.seek(Stempel)
def next_dir():
if window.aktuelleOrdnernr<len(window.alleMusikOrdner)-1:
window.aktuelleOrdnernr +=1
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
label2.text=window.liederInOrdner[window.aktuellesLied]
else:
window.aktuelleOrdnernr =0
ladeOrdner(window.alleMusikOrdner[window.aktuelleOrdnernr])
label3.text=os.path.basename(window.alleMusikOrdner[window.aktuelleOrdnernr])
label2.text=window.liederInOrdner[window.aktuellesLied]
pyglet.app.run()
Wenn ich das Script starte und erst "P" und dann ENTER drücke, bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\niklas\Desktop\raspi_radio\ziellauf.py", line 296, in <module>
pyglet.app.run()
File "C:\Python27\lib\site-packages\pyglet\app\__init__.py", line 138, in run
event_loop.run()
File "C:\Python27\lib\site-packages\pyglet\app\base.py", line 142, in run
self._run()
File "C:\Python27\lib\site-packages\pyglet\app\base.py", line 154, in _run
timeout = self.idle()
File "C:\Python27\lib\site-packages\pyglet\app\base.py", line 275, in idle
redraw_all = self.clock.call_scheduled_functions(dt)
File "C:\Python27\lib\site-packages\pyglet\clock.py", line 346, in call_scheduled_functions
item.func(now - item.last_ts, *item.args, **item.kwargs)
File "C:\Users\niklas\Desktop\raspi_radio\ziellauf.py", line 86, in update
window.liederInOrdner = os.listdir (ordnerName)
NameError: global name 'ordnerName' is not defined
>>>
Ich hoffe, ihr könnt mir weiterhelfen!
MFG niklas schn.