image image


Worknote (und Thread): PyGame und Python3: Problem gelöst?

image

Mit meinem Problem, daß PyGame unter (Anaconda-) Python3 zumindest mit macOS nicht vernünftig läuft, da speziell die Tastaturabfrage ins Leere geht, bin ich ein gutes Stück weitergekommen. Dabei half mir die Entdeckung, daß ’das PyGame-Fenster unter Python 2.7 (mit dem es auch unter macOS vernünftig läuft) sofort in den Vordergrund geht und den Fokus besitzt, während mit Python3 das aufrufende Programm den Fokus behält und das PyGame-Fenster erst mit einem Mausklick nach vorne geholt werden muß.

Ich erinnerte mich, daß es ähnliche Probleme schon einmal mit Python 2 gab (ich glaube, bis Python 2.5). Zur Lösung mußte man die Programme statt mit python mit pythonw starten. Welche Magie hinter dem mysteriösen pythonw steckt, hat sich mir nie erschlossen, aber es funktionierte. Also änderte ich in den Präferenzen von TextMate 2 den TM_PYTHON-Pfad einfach von ~/anaconda/bin/python auf ~/anaconda/bin/pythonw. Und siehe da: Das PyGame-Fenster war vorne, erhielt den Fokus und die Tastaturabfrage lief nicht mehr ins Leere.

image

Erste Tests ergaben, daß den anderen Programmmen es völlig egal zu sein scheint, ob sie mit python oder pythonw aufgerufen werden. Auch die Programme, die auf Tkinter (wie zum Beispiel Pythons Turtle Modul) oder PyGlet (wie zum Beispiel die Arcade-Bibliothek oder Cocos2d) aufsetzen und die das Problem mit dem Fokus nie hatten, scheinen auch unter pythonw vernünftig zu laufen.

Das Problem ist damit aber nur halb gelöst, denn wenn ich in Atom oder Visual Studio Code ein PyGame-Programm aus diesen Editoren aufrufe, wissen die natürlich nichts vom TM_PYTHON-Pfad und starten das Skript mit python. Die Lösung ist also auf die Kommandozeile und auf TextMate begrenzt.

Daher habe ich zwei Fragen. Erstens: Wie bringt man den genannten Editoren (Visual Studio Code mit Code Runner und Atom mit dem Script-Paket) bei, daß sie Python-Skripte ebenfalls mit pythonw und nicht mit python starten? Und zweitens: Was macht dieses pythonw eigentlich anders als python und warum braucht man es in Python 2.7 nicht mehr und in Python3 doch wieder?

Auf jeden Fall freue ich mich erst einmal, daß ich endlich auch mit Python3 und PyGame spielen kann. Still digging!


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image


image