xturtle und mac

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

Wie du in diesem Thread lesen kannst, ergeben sich gelegentlich Probleme, die damit zu tun haben, dass sowohl xturtle als auch IDLE selbst auf Tkinter aufsetzen. Das verleitet schonmal dazu, bei xturtle- (oder Tkinter-)Programmen das abschließende "mainloop()" zu vergessen, weil IDLE durch seine eigene mainloop das Fenster trotzdem offen hält.

Gib doch als letzte(!) Anweisung mal ein:

Code: Alles auswählen

mainloop()
Wenn du Glück hast, ist das schon des Rätsels Lösung.
marci2010
User
Beiträge: 5
Registriert: Donnerstag 23. Oktober 2008, 09:53

Hallo Danke fuer den Tipp!
Gibt es eine Moeglichkeit, dies auch im
interaktiven Modus zu verwenden?
Also in der IDLE

Code: Alles auswählen

import from xturtle *
eingebe und dann mit

Code: Alles auswählen

forward(100)
das neue Fenster sich oeffnet, mit der Xturtle

Danke fuer eure Tipps und Hilfen!!

Viele Gruesse
Marcel
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Ich deute deinen Text so:

Das mit mainloop() hat funktioniert, wenn du einen Quelltext im Editor von IDLE eingibst und das Programm dann ausführst.

Du willst nun auch interaktiv mit der turtle spielen, was aber anscheinend aus irgendeinem Grund nicht geht.

Falls es so ist, wie ich vermute: Wenn es dir um den interaktiven Modus geht, dann brauchst du ja keinen Editor bzw. keine IDE. Dann kannst du doch den Python-Interpreter direkt aufrufen und versuchen, ob es dann klappt.

Auf jeden Fall wirst du eine korrekte import-Anweisung verwenden müssen ... :wink:
marci2010
User
Beiträge: 5
Registriert: Donnerstag 23. Oktober 2008, 09:53

Hi!
Supi schon wieder so schnell eine Antwort.
Also:
mainloop() geht nicht:

Code: Alles auswählen

>>> mainloop()

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    mainloop()
  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 328, in mainloop
    _default_root.tk.mainloop(n)
AttributeError: 'NoneType' object has no attribute 'tk'
>>> 

Was bedeutet das?
Das sagt mir als Anfaenger gar nichts!


Was geht, ist pyhton in der shell starten, dann
xturtle importieren und mit forward(100)
voila geht ein Fenster auf, das die Turtle zeichnet, ohne die beschriebenen Fenster Probleme.
Da in dem Buch, mit der IDLE gearbeitet wird, wuerde ich auch gerne damit arbeiten.

Vielen Dank fuer den Tipp!
Ein schoenes WE
Gruss
Marcel
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Ich verstehe dich so:

Du kannst IDLE benutzen, um einen Quelltext im Editor einzugeben und aus IDLE heraus zu starten. Das funktioniert, wenn du nach korrektem import von xturtle mainloop() ans Ende setzt.

Du kannst im interaktiven Modus des Python-Interpreters xturtle importieren und die Turtle mit einzelne Anweisungen füttern.

Es gelingt dir aber nicht, innerhalb von IDLE über deren Shell das gleiche zur erreichen.

Richtig? - Wenn ja: Was stört dich jetzt noch?
Ob du für die interaktiven Experimente die IDLE-Shell oder die "echte" Python-Shell ohne IDLE benutzt, ist doch völlig egal.

Oder aber: Das Ausführen von Programmen aus dem IDLE-Editor heraus funktioniert ebenfalls - trotz abschließendem mainloop() - noch nicht. Dann verstehe ich, was dich stört.
marci2010
User
Beiträge: 5
Registriert: Donnerstag 23. Oktober 2008, 09:53

guten Morgen!

Also am WE hatte ich es ausprobiert folgendermassen:

In der IDLE Editor gestartet:

Code: Alles auswählen

from xturtle import *
mainloop()
forward(100)
Dies hat NICHT funktioniert.

Heute getestet:
in der IDLE im Editor

Code: Alles auswählen

from xturtle import *
forward(100)
mainloop()
Das funktioniert!
Wer Lesen kann, ist klar im Vorteil.
Gib doch als letzte(!) Anweisung mal ein:
Also mainloop() ganz am Ende hat es gebracht.

Zusammenfassung:
Wenn ich die IDLE nutzen will, schreibe ich den code in einen Editor und setze Ganz am Ende
mainloop()

Oder ich nehme den interaktiven Modus von Python in der shell.

Supi, ganz,ganz herzlichen Dank, fuer eure Hilfe!!
Jetzt kann ich anfangen Python zu Lernen.
Viele Gruesse und einen schoenen Tag!
Marcel
Antworten