我正在尝试将通知发送到通知中心(Mac OSX) 我正在使用PyObjC绑定来从我们的python应用程序中使用cocoa api。
我正在使用以下代码段:
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)¬
当我直接从python运行时,它运行正常,并在通知中心显示通知。但是当我使用PyInstaller打包上面的程序来准备二进制文件并运行它时会出现以下错误。
AttributeError: 'NoneType' object has no attribute 'deliverNotification_'
这意味着我没有得到默认用户通知中心的对象。
有人遇到过这个问题吗?
提前致谢。
答案 0 :(得分:3)
找到答案。原来我们需要CFBundleIdentifier'在App的Info.plist文件中定义的密钥,默认情况下在PyInstaller生成的plist文件中不存在。否则,应用无法访问通知中心。