【问题标题】: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"])))
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      相关资源
      最近更新 更多