xturtle und mac

Probleme bei der Installation?
Serge
User
Beiträge: 3
Registriert: Donnerstag 19. Juni 2008, 13:38

Liebe Leute,

erstmal: heute habe ich mich hier angemeldet und danke Euch dafür, daß es ein solches Forum gibt! :D

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
Serge
User
Beiträge: 3
Registriert: Donnerstag 19. Juni 2008, 13:38

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 :roll:

/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?
christian_
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
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Hallo christian_, willkommen im Forum.

WAS ist um 90° gedreht?

Am besten zeigst du uns ein Stück von deinem Code und sagst, was er machen soll bzw. was er nicht macht.
christian_
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
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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)
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)?

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.
christian_
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
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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
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.

Und nochmal zur Drehung: Ist es gegenüber der Windowsdarstellung um 90° nach RECHTS oder nach LINKS gedreht?
christian_
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"
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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"
Oh! :shock:

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.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

:idea:
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 :wink:
christian_
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()
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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):

Code: Alles auswählen

from xturtle import *

reset();hideturtle() 
mode("logo") # nur Mac-Version
Rest wie gehabt

Und dann als letzte Zeile:

Code: Alles auswählen

mainloop()
Im Modus "logo" ist 0° nicht rechts, sondern oben. Allerdings werden Winkelmaße dann auch nicht gegen, sondern im Uhrzeigersinn interpretiert ...
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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:

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()
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 :wink: ).

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.
christian_
User
Beiträge: 7
Registriert: Montag 23. Juni 2008, 15:51

wow,

hat geklappt,

vielen Danke für die tolle Hilfe
christian_
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
dd42
User
Beiträge: 16
Registriert: Mittwoch 30. April 2008, 21:15

an alle die xturtle auf mac installieren wollen: ich hatte selbst mal das Problem und hab deshalb damals einen xturtle-mac installer gemacht. wer die .dmg haben will, einfach eine PM schicken :wink:

Liebe Grüße, David
marci2010
User
Beiträge: 5
Registriert: Donnerstag 23. Oktober 2008, 09:53

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

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
>>> 
Also wird das Modul geladen (Ist es ein Modul?)

Ebenfalls schoen

Nun kann ich mit

Code: Alles auswählen

forward(100)

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
BlackJack

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.
marci2010
User
Beiträge: 5
Registriert: Donnerstag 23. Oktober 2008, 09:53

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
Antworten