python - 在 mac osx 上启动应用程序的多个进程

标签 python macos applescript py2app platypus

我在 mac osx 10.9 上使用 python 2.7 创建应用程序。 此应用程序将文件名作为参数,然后打开文件,并持续监视文件的更改,直到文件关闭。

它对单个文件工作正常。我使用 py2app 和 platypus 将 python 代码 .py 文件转换为应用程序。

它的局限性是,一旦应用程序的实例(进程)启动(通过单击任何文件打开),文件就会打开。但是,同时,我无法一次打开两个文件,即启动到应用程序的实例。通过终端,可以启动一个应用程序的多个实例。

然后,我应该怎么做,一次打开多个文件,通过这个应用程序一次单击多个文件。

最佳答案

这实际上不是 py2app 的问题,而是由平台的工作方式引起的:当用户试图打开一个与已经在运行的应用程序相关联的文件时,系统不会启动该应用程序的第二个实例,而是向已经运行的应用程序发送一个事件,告诉它打开新文件。

要处理多个文件,您应该实现某种 GUI 事件循环(使用 PyObjC、Tk 等),它可用于接收当用户尝试为已经运行的文件打开文件时发送的 OSX 事件申请。

关于python - 在 mac osx 上启动应用程序的多个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921549/

相关文章:

xcode - 如何让 Xcode 使用 Applescript 构建和运行?

python - 如何正确识别嘈杂图像上的形状?

python - 是否可以使用 SRUN 而不是 SBATCH 在后台运行 SLURM 作业?

macos - 为 UI 测试模拟低带宽?

macos - 用于运行检测显示器的 Applescript

windows - Windows 上的 AppleScript

python - 用另一个列值填充缺失的日期

python - OperatorNotAllowedInGraphError : using a `tf.Tensor` as a Python `bool` is not allowed: (error in tf Cycle GAN)

macos - 目录上的 NodeJS fs.watch 仅在编辑器更改时触发,但 shell 或 fs 模块不触发

c++ - SDL Video Init 在 Mac OS X 10.8 上导致异常