首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用py2app打包时包含终端通知器

如何在使用py2app打包时包含终端通知器
EN

Stack Overflow用户
提问于 2013-10-24 20:15:57
回答 2查看 285关注 0票数 1

我正在用python在mac osx上做一个应用程序。我使用py2app从myapp.py、python脚本文件和setup.py制作myapp.app。在我的myapp.py代码中,我使用终端通知器作为

代码语言:javascript
复制
def notify(title, subtitle, message):
    t = '-title {!r}'.format(title)
    s = '-subtitle {!r}'.format(subtitle)
    m = '-message {!r}'.format(message)
    os.system('terminal-notifier {}'.format(' '.join([m, t, s])))

notify(
    title    = 'Title message',
    subtitle = 'with python',
    message  = 'Validating user'
)

作为sudo gem install terminal-notifier安装后,它可以很好地显示通知。终端通知程序出现在我的系统in location /Library/Ruby中。我的问题是how to include this in py2app for developing my app, as py2app is not able to include terminal-notifier in myapp.app。我的setup.py是

代码语言:javascript
复制
from setuptools import setup

APP=['myapp.py']
DATA_FILES= [('',['config.cfg'])]
OPTIONS={'iconfile':'cc.icns','argv_emulation': True,'plist':{'CFBundleShortVersionString':'1.0'}}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app']
    )   
EN

回答 2

Stack Overflow用户

发布于 2013-10-27 22:30:59

应该可以将脚本作为数据文件包含进来(然后它会在应用程序的“Resources”文件夹中结束,这是应用程序启动时的当前工作目录)。

也就是说,我完全没有使用终端通知程序的经验,也几乎没有使用Ruby的经验,我不知道仅仅复制脚本文件是否就足以得到一个工作脚本(由于依赖关系)

顺便说一下,终端通知程序似乎是一个向通知中心发送消息的工具:https://github.com/julienXX/terminal-notifier。使用PyObjC也可以做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2018-06-24 22:52:29

我也有同样的问题,不能想出一个完美的解决方案,但这个变通方法对我有效……

右键单击应用程序并选择“显示包内容”,然后选择“内容”文件夹。在"Contents“文件夹中是另一个名为"MacOS”的文件夹,打开该文件夹并找到应用程序的.exe文件。您可以为该.exe创建别名并将其拖动到任何位置(即桌面或应用程序)。双击你的.exe的别名来启动你的应用程序,通知就会工作(假设你每次运行exe时都会打开一个终端窗口)。

终端通知器正在打包,当您运行可执行文件时,它工作得很好,但由于某些原因,它不能与通过py2app生成的应用程序一起工作!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19565683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档