image image


image

Worknote und Thread: ApplePersistenceIgnoreState

Seit meinem Umstieg auf ein MacBook Pro mit einem aktuellen macOS (Mojave) bekomme ich beim Aufruf von Python-Scripten, die irgendein GUI-Toolkit nutzen (zum Beispiel Tkinter), folgende, leicht irritierende Meldung im Terminal angezeigt:

ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to (null)

Ich habe ein wenig experimentiert: Die Meldung kommt nur, wenn ich ein Programm mit pythonw statt mit python starte, dies ist aber bei einem Anaconda-Python zusammen mit Pygame oder Pygame Zero zwingend notwendig, da sonst die Tastaturabfrage nicht funktioniert. Und ich habe ein wenig gegoogelt. Dies scheint ein reines Probelm von macOS zu sein und man kann die Meldung mit folgendem Befehl im Terminal ausschalten:

defaults write org.python.python ApplePersistenceIgnoreState NO

Bei Nutzern von Anaconda-Python sieht das Kommando leicht anders aus:

defaults write com.continuum.python ApplePersistenceIgnoreState NO

Das funktioniert, ich habe es – für mein Anaconda-Python – getestet. Sollte man damit dennoch in irgendwelche Schwierigkeiten geraten, kann man den Zustand mit

defaults write org.python.python ApplePersistenceIgnoreState YES

respektive bei einem Anaconda-Python mit

defaults write com.continuum.python ApplePersistenceIgnoreState YES

wieder zurücksetzen (ebenfalls mit meinem Anaconda-Python getestet). Ich habe keine Ahnung, was Apple uns mit dieser Meldung mitteilen will und da das Unterdrücken dieser Meldung keine Auswirkungen auf die Programme zu haben scheint, bleibt sie bei mir erst einmal ausgeschaltet. Falls Ihr mir und dieser Anleitung folgt: Ich übernehme keine Garantie, Ihr führt diese Kommandos auf eigene Gefahr aus.

image

Und nun zu einem zweiten Problem: Ich habe ja ebenfalls Python-tcod, eine Bibliothek um Roquelikes in Python zu programmieren, auf meinem Rechner installiert. Hier bekomme ich – wenn ich die Bibliothek zusammen mit Pyame oder Pygame Zero aufrufe – folgende, störende Warnung:

Class SDLTranslatorResponder is implemented in both /Users/admin/anaconda3/lib/python3.7/site-packages/tcod/.dylibs/SDL2 (0x114558440) and /Users/admin/anaconda3/lib/python3.7/site-packages/pygame/.dylibs/libSDL-1.2.0.dylib (0x1146ad680). One of the two will be used. Which one is undefined.

Im Gegensatz zu oben weiß ich sogar, was gemeint ist: Pygame nutzt SDL 1.2, wohingegen Python-tcod SDL 2 nutzt. Aber ich weiß nicht, wie ich damit umgehen soll – bisher habe ich noch keine Probleme bekommen, aber ein ungutes Gefühl hinterläßt diese Meldung bei mir schon. Den eigentlich üblichen Weg, Pygame und Python-tcod in zwei verschiedenen, virtuellen Umgebungen zu installieren, kann ich hier nicht einschlagen, da ich diesen Tutorials folgen möchte, die ein Roguelike mit libtcod zusammen mit Pygame programmieren. Wenn also jemand von Euch da draußen eine Antwort hat, bitte ich um eine Nachricht in meinen (Email-) Kommentaren. Bis dahin: Daumendrück und still digging!

image


(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