我正在尝试向通知中心(Mac )发送通知,我正在使用PyObjC绑定来使用我们python应用程序中的可可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_'这意味着我没有得到默认用户通知中心的对象。
有人遇到这个问题了吗?
提前谢谢。
发布于 2014-08-11 13:12:57
找到答案了。事实证明,我们需要在应用程序的CFBundleIdentifier文件中定义‘Info.plist’键,它在PyInstaller生成的plist文件中默认不存在。否则,应用程序将无法访问Notification。
https://stackoverflow.com/questions/25204797
复制相似问题