我正在用python在mac osx上做一个应用程序。我使用py2app从myapp.py、python脚本文件和setup.py制作myapp.app。在我的myapp.py代码中,我使用终端通知器作为
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是
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']
) 发布于 2013-10-27 22:30:59
应该可以将脚本作为数据文件包含进来(然后它会在应用程序的“Resources”文件夹中结束,这是应用程序启动时的当前工作目录)。
也就是说,我完全没有使用终端通知程序的经验,也几乎没有使用Ruby的经验,我不知道仅仅复制脚本文件是否就足以得到一个工作脚本(由于依赖关系)
顺便说一下,终端通知程序似乎是一个向通知中心发送消息的工具:https://github.com/julienXX/terminal-notifier。使用PyObjC也可以做到这一点。
发布于 2018-06-24 22:52:29
我也有同样的问题,不能想出一个完美的解决方案,但这个变通方法对我有效……
右键单击应用程序并选择“显示包内容”,然后选择“内容”文件夹。在"Contents“文件夹中是另一个名为"MacOS”的文件夹,打开该文件夹并找到应用程序的.exe文件。您可以为该.exe创建别名并将其拖动到任何位置(即桌面或应用程序)。双击你的.exe的别名来启动你的应用程序,通知就会工作(假设你每次运行exe时都会打开一个终端窗口)。
终端通知器正在打包,当您运行可执行文件时,它工作得很好,但由于某些原因,它不能与通过py2app生成的应用程序一起工作!
https://stackoverflow.com/questions/19565683
复制相似问题