如何在mac osx上启动应用程序的多个实例

时间:2014-04-06 19:18:53

标签: python macos packages py2app

我使用py2app开发了一款应用。在mac osx 10.9上使用python 2.7 当我启动应用程序(通过单击任何文件)时,它开始执行通过默认文件打开程序打开文件所需的操作,然后监视文件更改。 我在python代码中传递 filename作为参数。 但是应用程序无法一次打开多个文件。我发现py2app的问题为py2app issue 那么,有没有其他方法将python代码转换为应用程序,以便可以生成应用程序的多个实例(进程)

1 个答案:

答案 0 :(得分:1)

这似乎是与Launch multiple process of an app on mac osx相同的问题。

我可以提出的问题解释的唯一解决方法是将应用程序分成两部分:一个将作为主应用程序的包装脚本,以及用作&#的真实脚本34; - 额外的脚本&#34 ;.包装器脚本会将参数转发给真实脚本并退出,例如:

 # 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"])))

(所有代码都在未经测试的情况下输入答案,可能还有一些错误)