python-NSUserNotificationCenter.defaultUserNotificationCenter()使用PyInstaller返回无
作者:互联网
我正在尝试将通知放到通知中心(Mac OSX)
我正在使用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_'
这意味着我不会成为默认用户通知中心的对象.
有人遇到过这个问题吗?
提前致谢.
解决方法:
找到了答案.事实证明,我们需要在App的Info.plist文件中定义的“ CFBundleIdentifier”键,默认情况下在PyInstaller生成的plist文件中不存在该键.否则,应用程序将无法访问通知中心.
标签:pyobjc,python,macos,pyinstaller 来源: https://codeday.me/bug/20191121/2051455.html