NSUserNotificationCenter.defaultUserNotificationCenter () Rückgabe von None mit PyInstaller

Ich versuche, Benachrichtigung an Benachrichtigungszentrum (Mac OSX) Ich benutze PyObjC Bindungen, um Kakao-Api aus unserer Python-Anwendung verwenden.

Ich benutze folgendes Code-Snippet:

import Foundation¬ import objc¬ NSUserNotification = objc.lookUpClass('NSUserNotification')¬ NSUserNotificationCenter = objc.lookUpClass('NSUserNotificationCenter')¬ notification = NSUserNotification.alloc().init()¬ notification.setTitle_("TestTitle")¬ notification.setInformativeText_("This is sample text")¬ center = NSUserNotificationCenter.defaultUserNotificationCenter()¬ center.deliverNotification_(notification)¬ 

Wenn ich oben direkt aus Python läuft, läuft es gut und zeigt Benachrichtigung im Benachrichtigungszentrum. Allerdings, wenn ich Paket über Programm mit PyInstaller, um Binär vorzubereiten und laufen es gibt folgende Fehler.

 AttributeError: 'NoneType' object has no attribute 'deliverNotification_' 

Dies bedeutet, dass ich kein Objekt der Standardbenutzer-Benachrichtigungszentrale bekomme.

Ist jemand auf dieses Problem gestoßen?

Danke im Voraus.

One Solution collect form web for “NSUserNotificationCenter.defaultUserNotificationCenter () Rückgabe von None mit PyInstaller”

Eine Antwort gefunden Stellt sich heraus, dass wir den 'CFBundleIdentifier' Key benötigen, der in der Info.plist-Datei von App definiert ist, die in PyInstallers erzeugter Plist-Datei nicht standardmäßig vorhanden ist. Andernfalls bekommt die App keinen Zugriff auf das Benachrichtigungscenter.

  • Schreiben von Metadaten zu einem pdf mit pyobjc
  • Python-Code zur Erkennung von Dunkel-Modus in OS X EI Capitan, um das Statusleisten-Menüsymbol zu ändern
  • Integrationsproblem mit PyObjC und TKinter
  • Schreiben von Kakaoprodukten in Python 3
  • ImportError: Kein Modul namens pyobjc
  • Pyobjc-Objekt aus Integer-ID erhalten
  • Problem mit openPanelDidEnd in PyObjC in 10.6
  • Ist es möglich, ein Python-Modul von ObjC aufzurufen?
  • Mit pyobjc importiert in PyDev in Eclipse unter Mac OS X
  • Python ist die beste Programmiersprache der Welt.