编程语言
首页 > 编程语言> > python-NSUserNotificationCenter.defaultUserNotificationCenter()使用PyInstaller返回无

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