簡體   English   中英

與py2app打包時如何包含終端通知程序

[英]How to include terminal-notifier when packaging with py2app

我在Mac OS X上的python中制作一個應用程序。 我正在使用py2app從myapp.py python腳本文件和setup.py制作myapp.app。 在我的myapp.py代碼中,我使用terminal-notifier作為

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后顯示通知時,它工作正常。 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']
    )   

應該可以將腳本包含為數據文件(然后終止於應用程序的“ Resources”文件夾,該文件夾是啟動應用程序時的當前工作目錄)

就是說,我完全沒有使用終端通知程序的經驗,也沒有使用Ruby的經驗,並且不知道僅復制腳本文件是否足以完成工作腳本(由於依賴關系)

BTW終端通知程序似乎是將消息發送到通知中心的工具: https : //github.com/julienXX/terminal-notifier 您也可以使用PyObjC來做。

我遇到了同樣的問題,無法找到完美的解決方案,但是這種解決方法對我有用。

右鍵單擊該應用程序,然后選擇“顯示包裝內容”,然后選擇“內容”文件夾。 在“目錄”文件夾中是另一個名為“ MacOS”的文件夾,打開該文件夾並找到您的應用程序的.exe文件。 您可以為該.exe創建別名並將其拖到任何位置(例如,桌面或應用程序)。 雙擊您的.exe的別名以啟動您的應用,通知將起作用(每次運行exe時都會打開一個終端窗口)。

打包了終端通知程序,因為它在您運行exe時可以完美運行,但是由於某些原因,它不適用於通過py2app生成的應用程序!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM