Liebe Leute,
erstmal: heute habe ich mich hier angemeldet und danke Euch dafür, daß es ein solches Forum gibt!
Ich versuche schon seit längerem das Modul xturtle (eine Erweiterung von Gregor Lingl, das auf der CD zum Buch Python für Kids mitgeliefert wird) auf einem mac zu installieren. Ich nutze Mac OS X 10.5.2, auf dem ja auch ein Unix-System mitgeliefert wird.
Deshalb habe ich versucht, gemäß der Diskussion in den folgend verlinkten beiden Beiträgen vorzugehen:
1. "xturtle-Modul (aus Python für Kids) unter Linux verwenden" (http://www.python-forum.de/topic-13088.htm)
2."xTurtle und Mac"
(http://www.python-forum.de/post-79602.html#79602)
Was habe ich bis jetzt getan?
Ich nutze Python 2.5
Ich habe die Dateien xturtle.py und docsdict_german.py in folgenden Ordner kopiert: /usr/lib/python2.5/lib-tk/
Es wurde auch vorgeschlagen, diese Dateien in den Ordner site-packages zu kopieren. Allerdings gibt es diesen Ordner in /usr/lib/python2.5 bei mir auf dem mac nicht. Ich habe ihn allerdings unter diesem Pfad gefunden: /Library/Python/2.5/site-packages gefunden und dort auch diese beiden Dateien hineinkopiert.
Allerdings ohne jeden Erfolg. So konnte ich weder am Terminal noch in IDLE das modul mit dem Befehl "from xturtle import *" importieren. Jedesmal kommt folgende Fehlermeldung:
"Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named xturtle"
Weiß einer von Euch vielleicht weiter und kann mir helfen?
Vielen Dank Serge
xturtle und mac
Liebe Leute,
ich habe jetzt selbst eine Lösung gefunden. Man muß anscheinend die Datei xturtle.py und docsdict_german.py in folgenden Ordner kopieren, dann funktioniert der import des Moduls xturtle sowohl unter dem Terminal als auch unter IDLE
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk
Warum es den Ordner lib-tk allerdings zweimal gibt (einmal unter dem obigen Pfad und ein zweitesmal unter /usr/lib/python2.5/lib-tk) verstehe ich nicht.
Vielleicht weiß jemand weiter?
ich habe jetzt selbst eine Lösung gefunden. Man muß anscheinend die Datei xturtle.py und docsdict_german.py in folgenden Ordner kopieren, dann funktioniert der import des Moduls xturtle sowohl unter dem Terminal als auch unter IDLE
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk
Warum es den Ordner lib-tk allerdings zweimal gibt (einmal unter dem obigen Pfad und ein zweitesmal unter /usr/lib/python2.5/lib-tk) verstehe ich nicht.
Vielleicht weiß jemand weiter?
-
- User
- Beiträge: 7
- Registriert: Montag 23. Juni 2008, 15:51
Hallo,
auch ich hatte/habe ein ähnliches Problem, habe auch die Dateien in das oben genannte Lib Verzeichnis kopirt aber aber Python funtioniert mit xturtle nur teilweise:
beim starten eines Programms ist alles um 90Grad nach rechts gedreht und dann am Ende des jeweiligen PRogrammablaufs hängt er sich das Programm auf und nur der alt bekannte Apple Ball erscheint bis ich das Prgramm dann manuel beende
wisst ihr woran das liegen könnte?
System: MacPython 2.5.2 unter Leopard
auch ich hatte/habe ein ähnliches Problem, habe auch die Dateien in das oben genannte Lib Verzeichnis kopirt aber aber Python funtioniert mit xturtle nur teilweise:
beim starten eines Programms ist alles um 90Grad nach rechts gedreht und dann am Ende des jeweiligen PRogrammablaufs hängt er sich das Programm auf und nur der alt bekannte Apple Ball erscheint bis ich das Prgramm dann manuel beende
wisst ihr woran das liegen könnte?
System: MacPython 2.5.2 unter Leopard
-
- User
- Beiträge: 7
- Registriert: Montag 23. Juni 2008, 15:51
Hallo,
nun ich habe den Code unter windows geschrieben und dort läuft er so wie er sein sollte.
Als ich ihn unter macpython laufen lassen wollte, war das xturtle-ausgabe fenster um 90 gedreht (also da wo dann die schildkröte langläuft)
gruß
bin aber nicht ganz sicher ob ich xturtle richtig eingebunden habe
nun ich habe den Code unter windows geschrieben und dort läuft er so wie er sein sollte.
Als ich ihn unter macpython laufen lassen wollte, war das xturtle-ausgabe fenster um 90 gedreht (also da wo dann die schildkröte langläuft)
gruß
bin aber nicht ganz sicher ob ich xturtle richtig eingebunden habe
Ist immer noch nicht eindeutig: Meinst du mit "Fenster" das gesamte Fenster inkl. Fensterdekoration? Oder nur den Fensterinhalt (bei xturtle wäre das ein Tkinter-Canvas-Widget)?christian_ hat geschrieben:nun ich habe den Code unter windows geschrieben und dort läuft er so wie er sein sollte.
Als ich ihn unter macpython laufen lassen wollte, war das xturtle-ausgabe fenster um 90 gedreht (also da wo dann die schildkröte langläuft)
Falls es nur das Innere des Fensters ist:
Soweit ich mich erinnere, gibt es in xturtle zwei Basismodi für die Grundausrichtung der Turtle (entweder 0° = rechts oder 0° = oben).
Eine mögliche Erklärung wäre dann, dass unter MacOS ein anderer Modus voreingestellt ist als unter Windows. Da man diesen Modus manuell einstellen kann, wäre das Problem in diesem Fall vermutlich lösbar.
-
- User
- Beiträge: 7
- Registriert: Montag 23. Juni 2008, 15:51
entschuldige,
das meinte ich auch, also es dreht sich nur der fensterinhalt.
und was ich damit, dass sich nach dem ablauf der grafikzeichnung von xturtle das fenster aufhängt? also manuell geschlossen werden muss, (bei mac unter sofort beenden ählich Str/alt/ent unter windows) das kann ja so auch nicht gewollt sein
das meinte ich auch, also es dreht sich nur der fensterinhalt.
und was ich damit, dass sich nach dem ablauf der grafikzeichnung von xturtle das fenster aufhängt? also manuell geschlossen werden muss, (bei mac unter sofort beenden ählich Str/alt/ent unter windows) das kann ja so auch nicht gewollt sein
Nee, ist nicht gewollt. Sollte sich abstellen lassen, dürfte etwas mit der Tkinter-mainloop() zu tun haben. Da wäre ein Stück Code hilfreich, dann lässt sich das besser bzw. eindeutiger erklären.christian_ hat geschrieben:und was ich damit, dass sich nach dem ablauf der grafikzeichnung von xturtle das fenster aufhängt? also manuell geschlossen werden muss, (bei mac unter sofort beenden ählich Str/alt/ent unter windows) das kann ja so auch nicht gewollt sein
Und nochmal zur Drehung: Ist es gegenüber der Windowsdarstellung um 90° nach RECHTS oder nach LINKS gedreht?
-
- User
- Beiträge: 7
- Registriert: Montag 23. Juni 2008, 15:51
nach rechts gedreht
ausgabe imn idle:
Traceback (most recent call last):
File "/Users/christian/Documents/_Python/nuclear.py", line 28, in <module>
circle(160,60);lt(90);fd(160);rt(120)
File "<string>", line 1, in rt
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 1352, in right
self._rotate(-angle)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 2797, in _rotate
self._update()
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 2370, in _update
t._pencolor, t._pensize)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 447, in _drawline
self.cv.coords(lineitem, *cl)
File "<string>", line 1, in coords
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 2134, in coords
self.tk.call((self._w, 'coords') + args)))
TclError: invalid command name ".13572216"
ausgabe imn idle:
Traceback (most recent call last):
File "/Users/christian/Documents/_Python/nuclear.py", line 28, in <module>
circle(160,60);lt(90);fd(160);rt(120)
File "<string>", line 1, in rt
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 1352, in right
self._rotate(-angle)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 2797, in _rotate
self._update()
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 2370, in _update
t._pencolor, t._pensize)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 447, in _drawline
self.cv.coords(lineitem, *cl)
File "<string>", line 1, in coords
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 2134, in coords
self.tk.call((self._w, 'coords') + args)))
TclError: invalid command name ".13572216"
Oh!christian_ hat geschrieben: Traceback (most recent call last):
File "/Users/christian/Documents/_Python/nuclear.py", line 28, in <module>
circle(160,60);lt(90);fd(160);rt(120)
File "<string>", line 1, in rt
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 1352, in right
self._rotate(-angle)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 2797, in _rotate
self._update()
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 2370, in _update
t._pencolor, t._pensize)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/xturtle.py", line 447, in _drawline
self.cv.coords(lineitem, *cl)
File "<string>", line 1, in coords
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 2134, in coords
self.tk.call((self._w, 'coords') + args)))
TclError: invalid command name ".13572216"
Ein bisschen mehr Code als der Schnipsel aus dem Traceback sollte es schon sein. Oder ist das zu geheim? (nuclear.py klingt ja sehr gefährlich ...)
Was an der einen Zeile aber schon auffällt:
Die Angewohnheit, mehrere Anweisungen/Ausdrücke hintereinander in eine Zeile zu schreiben und mittels ; zu trennen, solltest du dir wieder abgewöhnen. Das ist zwar syntaktisch möglich, aber für Python ganz und gar untypisch (jedenfalls, wenn man nicht im interaktiven Modus arbeitet).
Es sieht so aus, als hinge der Fehler mit dem rt() zusammen, und zwar an der Stelle, an der die Anweisung an Tkinter weitergereicht wird. Für mich sieht das eher wie ein Problem der Tkinter-Version für MacOS aus als nach einem Fehler in xturtle.
Wenn du den geheimen Code postest, könnte ich es zumindest unter Linux mal testen.
Mir kommt gerade ein Verdacht: Ich schätze mal, das rt() ist die letzte Anweisung in deinem Programm. Dann hängt es, du killst es und DANN kommt die Fehlermeldung. Richtig?
Dann hat es doch mit der mainloop() zu tun.
Darum also: Poste mal den ganzen geheimen Nuklearcode
-
- User
- Beiträge: 7
- Registriert: Montag 23. Juni 2008, 15:51
hallo das ist nur eine lehrbuchanweisung aus python für kids, keine große sache udn schon gar nix schweres im prinzip
from xturtle import *
reset();hideturtle()
#rahmen
pencolor("black");pensize(4);fillcolor("yellow")
penup();fd(200);pendown()
begin_fill()
lt(90);fd(200);lt(90);fd(400);lt(90);fd(400);lt(90);fd(400);lt(90);fd(200)
end_fill()
pencolor("black");pensize(4);fillcolor("black")
penup();home();rt(90);fd(60);lt(90);pendown()
begin_fill();circle(60),end_fill()
pu();rt(90);fd(100);lt(90);pd()
begin_fill()
circle(160,60);lt(90);fd(160);rt(120)
end_fill()
begin_fill()
fd(160);lt(90);circle(160,60);lt(90);fd(160);rt(120)
end_fill()
begin_fill()
fd(160);lt(90);circle(160,60);lt(90);fd(160);rt(120)
end_fill()
from xturtle import *
reset();hideturtle()
#rahmen
pencolor("black");pensize(4);fillcolor("yellow")
penup();fd(200);pendown()
begin_fill()
lt(90);fd(200);lt(90);fd(400);lt(90);fd(400);lt(90);fd(400);lt(90);fd(200)
end_fill()
pencolor("black");pensize(4);fillcolor("black")
penup();home();rt(90);fd(60);lt(90);pendown()
begin_fill();circle(60),end_fill()
pu();rt(90);fd(100);lt(90);pd()
begin_fill()
circle(160,60);lt(90);fd(160);rt(120)
end_fill()
begin_fill()
fd(160);lt(90);circle(160,60);lt(90);fd(160);rt(120)
end_fill()
begin_fill()
fd(160);lt(90);circle(160,60);lt(90);fd(160);rt(120)
end_fill()
Wichtig Wichtig Wichtig:
Wenn du Code postest, dann verwende dafür die Code-Tags in der Eingabemaske des Forums. Oberhalb des Eingabefeldes gibt es einige Buttons, da findest du den richtigen. Das macht das Lesen von Code einfacher.
Jetzt zur Lösung deines Problems (vielleicht):
Rest wie gehabt
Und dann als letzte Zeile:
Im Modus "logo" ist 0° nicht rechts, sondern oben. Allerdings werden Winkelmaße dann auch nicht gegen, sondern im Uhrzeigersinn interpretiert ...
Wenn du Code postest, dann verwende dafür die Code-Tags in der Eingabemaske des Forums. Oberhalb des Eingabefeldes gibt es einige Buttons, da findest du den richtigen. Das macht das Lesen von Code einfacher.
Jetzt zur Lösung deines Problems (vielleicht):
Code: Alles auswählen
from xturtle import *
reset();hideturtle()
mode("logo") # nur Mac-Version
Und dann als letzte Zeile:
Code: Alles auswählen
mainloop()
Noch ein Nachtrag:
Falls du (noch) nicht auf xturtle festgelegt bist oder es (z.B. wegen dem Einsatz in der Schule) einsetzen musst: Es gibt eine für meinen Geschmack interessante Alternative Namens frog.
Dein Nuklear-Programm sieht damit z.B. so aus:
Zwar gibt es kein gedrucktes Buch wie für xturtle, aber eine recht ausführliche deutschsprachige Dokumentation (dafür ist die aber im Unterschied zum xturtle-Buch kostenlos ).
Ob frog auf dem Mac läuft, weiß ich nicht.
Zum Testen würde es genügen, das Modul frog.py in den gleichen Ordner zu kopieren wie das Skript, das das Modul verwendet.
Falls du (noch) nicht auf xturtle festgelegt bist oder es (z.B. wegen dem Einsatz in der Schule) einsetzen musst: Es gibt eine für meinen Geschmack interessante Alternative Namens frog.
Dein Nuklear-Programm sieht damit z.B. so aus:
Code: Alles auswählen
from frog import *
pool = Pool(width=600,height=600)
frog = Frog(pool,visible=False)
frog.speed = 5
frog.width = 4
frog.fill = True
frog.fillcolor = "yellow"
frog.pos= -200,-200
for k in range(4):
frog.move(400)
frog.turn(90)
frog.home()
frog.angle = 30
frog.fillcolor = "black"
for k in range(3):
frog.move(160)
frog.turn(90)
frog.circle(160,60)
frog.turn(90)
frog.move(160)
frog.turn(-120)
frog.home()
frog.dot(120)
pool.ready()
Ob frog auf dem Mac läuft, weiß ich nicht.
Zum Testen würde es genügen, das Modul frog.py in den gleichen Ordner zu kopieren wie das Skript, das das Modul verwendet.
-
- User
- Beiträge: 7
- Registriert: Montag 23. Juni 2008, 15:51
wow,
hat geklappt,
vielen Danke für die tolle Hilfe
hat geklappt,
vielen Danke für die tolle Hilfe
-
- User
- Beiträge: 7
- Registriert: Montag 23. Juni 2008, 15:51
gibt es eigentlich eine Seite für Python auf dem MAc wo solche Probleme zusammengefasst sind, leider stehen in meinem Python diesbezüglich keine hinweise
Aloha!
Ich bin OS X User und moechte gerne Python erlernen.
Zu diesem Zweck habe ich mir das Buch von Python for Kids von Gregor Lindl gekauft. Da ich bisher null Ahnung von Programmierung habe, ist das niedrige Einstiegsniveau ideal.
Ich freue mich sehr, das es ein deutschsprachiges Forum gibt.
Als OS nutze ich OS X 10.5.5
Die Python Version ist Python 2.5.2 von Apple.
Mit Hilfe der Anleitung auf:
http://wiki.python.org/moin/MacPython/Leopard
habe ich es auch geschafft, die IDLE zu installieren.
Das Verzeichnis xturtle habe ich in das Verzeichnis
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages
kopiert.
Und eine ASCII Datei mit dem Namen xturtle
ebenfalls im Dir
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages
angelegt mit dem Inhalt xturtle
Soweit so gut.
Wenn ich jetzt die IDLE starte, dann
from xturtle import *
eingebe, bekomme ich die Meldung
Also wird das Modul geladen (Ist es ein Modul?)
Ebenfalls schoen
Nun kann ich mit
Jetzt oeffnet sich auch ein 2. Fenster mit der Turtle, die sich auch Wunschgemaesch bewegt.
Juhuu!
Leider, und dies ist mein Problem, ist dieses Fenster nicht im Vordergrund, laesst sich auch nicht in den Vordergrund holen und die Apple "Sanduhr" erscheint.
Wenn ich das richtig verstanden habe, hat das mit dem Tkinter zu tun.
Interessant ist, das wenn ich die Demo xturtleDemo.py in der IDLE starte,
funktioniert das Fenster des Programms wie gewuenscht.
Allerdings ist der Code des Demo Programm viel zu umfangreich, als das ich das verstehe.
Weiss jemand wie ich xturtle auf dem Mac nutzen kann?
Bin fuer jede Hilfe dankbar.
Viele Gruesse
Marcel
Ich bin OS X User und moechte gerne Python erlernen.
Zu diesem Zweck habe ich mir das Buch von Python for Kids von Gregor Lindl gekauft. Da ich bisher null Ahnung von Programmierung habe, ist das niedrige Einstiegsniveau ideal.
Ich freue mich sehr, das es ein deutschsprachiges Forum gibt.
Als OS nutze ich OS X 10.5.5
Die Python Version ist Python 2.5.2 von Apple.
Mit Hilfe der Anleitung auf:
http://wiki.python.org/moin/MacPython/Leopard
habe ich es auch geschafft, die IDLE zu installieren.
Das Verzeichnis xturtle habe ich in das Verzeichnis
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages
kopiert.
Und eine ASCII Datei mit dem Namen xturtle
ebenfalls im Dir
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages
angelegt mit dem Inhalt xturtle
Soweit so gut.
Wenn ich jetzt die IDLE starte, dann
from xturtle import *
eingebe, bekomme ich die Meldung
Code: Alles auswählen
IDLE 1.2.2
>>> from xturtle import *
xturtle0.95a0 - bugfixes: 1
Loading config-file from: /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/xturtle
>>>
Ebenfalls schoen
Nun kann ich mit
Code: Alles auswählen
forward(100)
Juhuu!
Leider, und dies ist mein Problem, ist dieses Fenster nicht im Vordergrund, laesst sich auch nicht in den Vordergrund holen und die Apple "Sanduhr" erscheint.
Wenn ich das richtig verstanden habe, hat das mit dem Tkinter zu tun.
Interessant ist, das wenn ich die Demo xturtleDemo.py in der IDLE starte,
funktioniert das Fenster des Programms wie gewuenscht.
Allerdings ist der Code des Demo Programm viel zu umfangreich, als das ich das verstehe.
Weiss jemand wie ich xturtle auf dem Mac nutzen kann?
Bin fuer jede Hilfe dankbar.
Viele Gruesse
Marcel
Mit IDLE gibt's öfter Probleme mit Programmen die `Tkinter` verwendet, weil IDLE selbst `Tkinter` benutzt und es nur ein `Tkinter.Tk`-Exemplar pro Programm geben darf. Ansonsten können "lustige" Sachen passieren, inklusive "harter" Abstürze des Python-Programms.
Hi BlackJack!
Danke fuer die Hintergrund Infos.
Ich wusste (bisher) nicht, dass die IDLE auch Tkinter fuer sich selbst nutzt.
Also ist es wohl etwas schwieriger.
Da jedoch das Demo Programm xturtleDemo.py problemlos laeuft, muss es jedoch eine Loesung geben.
Leider verstehe ich den Programmcode von dem Demo Programm
(noch) nicht.
Kann man nicht bestimmte Anweisungen bzw. Vorraussetzungen fuer Tkinter schaffen, damit ein neues Fenster ohne Probs geoeffnet wird?
Viele Gruesse
Marcel
Danke fuer die Hintergrund Infos.
Ich wusste (bisher) nicht, dass die IDLE auch Tkinter fuer sich selbst nutzt.
Also ist es wohl etwas schwieriger.
Da jedoch das Demo Programm xturtleDemo.py problemlos laeuft, muss es jedoch eine Loesung geben.
Leider verstehe ich den Programmcode von dem Demo Programm
(noch) nicht.
Kann man nicht bestimmte Anweisungen bzw. Vorraussetzungen fuer Tkinter schaffen, damit ein neues Fenster ohne Probs geoeffnet wird?
Viele Gruesse
Marcel