【问题标题】:How to launch multiple instance of an app on mac osx如何在 mac osx 上启动应用程序的多个实例
【发布时间】:2014-05-18 21:19:47
【问题描述】:
我使用 py2app 开发了一个应用程序。在 mac osx 10.9 上使用 python 2.7
当我启动应用程序(通过单击任何文件)时,它开始执行通过默认文件打开器打开文件所需的操作,然后监视文件更改。
我在 python 代码中传递 filename 作为参数。
但是应用程序无法一次打开多个文件。我发现 py2app 的问题为py2app issue
那么,有没有其他方法可以将python代码转换为应用程序,以便可以为应用程序生成多个实例(进程)
【问题讨论】:
标签:
python
macos
packages
py2app
【解决方案1】:
这似乎与Launch multiple process of an app on mac osx 是同一个问题。
对于该问题的解释,我能想出的唯一解决方法是将您的应用程序分成两部分:将成为主应用程序的包装脚本,以及用作“--extra-scripts”的真实脚本”。包装脚本会将参数转发给真正的脚本并退出,类似于:
# wrapper.py
import os, subprocess, sys
appdir = os.path.dirname(sys.argv[0])
subprocess.Popen([
os.path.join(appdir, "real-script")] + sys.argv[1:])
sys.exit(0)
在 setup.py 中:
setup(
name="MyApp",
app=["wrapper.py"],
options=dict(py2app=(extra_scripts=["real-script.py"])))
(所有代码都是在没有测试的情况下输入答案的,可能还有一些错误)