在mac osx上启动应用的多个进程
我在使用Python 2.7和Mac OS X 10.9来创建一个应用程序。这个应用程序需要文件名作为参数,然后打开这个文件,并持续监控这个文件的变化,直到文件被关闭。
对于单个文件来说,这个程序运行得很好。我使用了py2app和platypus把Python代码(.py文件)转换成了一个应用程序。
不过,这个程序有个限制,就是一旦启动了一个应用程序的实例(比如通过点击某个文件来打开),这个文件就会打开。但是,我不能同时打开两个文件,也就是说不能同时启动两个应用程序的实例。不过,通过终端是可以启动多个应用程序实例的。
那么,我该怎么做才能通过这个应用程序同时打开多个文件呢?也就是说,点击多个文件时能够同时打开。
1 个回答
2
这其实不是py2app的问题,而是平台工作方式造成的:当用户试图打开一个已经和正在运行的应用程序关联的文件时,系统不会启动这个应用程序的第二个实例,而是会向已经在运行的应用程序发送一个事件,告诉它去打开这个新文件。
为了处理多个文件,你应该实现某种图形用户界面(GUI)事件循环(可以使用PyObjC、Tk等),这样可以接收当用户尝试为一个已经在运行的应用程序打开文件时,系统发送的OSX事件。