python中的IPC - 当我双击它们时,如何在一个进程中打开多个文件

时间:2011-07-25 02:42:31

标签: python wxpython

我有一个python程序,可以打开并查看特定类型的图像文件。我已将脚本与windows&下的相关扩展/ mime类型相关联。 linux,所以双击图像文件打开它们。这当前打开了它自己的进程中的每个文件。我希望能够在一个进程中打开所有文件,因为这将节省启动时间和内存(我导入了很多非常大的模块,例如scipy),并使我能够执行涉及多个图像的计算。

如果有人熟悉ImageJ,这表明了我想要的那种开放语义(打开第一个图像启动程序,每个附加图像在原始过程中打开)。

我正在寻找一种相对简单的跨平台(windows,linux,MacOS)方式来实现这一点。到目前为止,我的想法是创建一个小存根程序,检查服务器进程的存在,然后,如果服务器进程存在,使用某种形式的IPC告诉服务器打开文件并退出。否则它将启动主进程并打开文件本身。我正在使用wxPython作为我的GUI,而IPC理想地以某种方式集成到了 wxpython事件循环。

到目前为止我已经考虑过了......

  • 使用wxServer,wxClient和& wxConnection - 这似乎只是在核心c ++ wxwidgets而不是wxpython。
  • Pyro - 我在项目的其他部分使用这个用于IPC并且相对熟悉它,但是pyro服务器需要在一个单独的线程中运行,需要各种奇怪的技巧来保持一致性gui。
  • 原始套接字 - 这听起来有些痛苦。

这似乎是一个非常常见的问题,我希望有一个更简单的解决方案。

0 个答案:

没有答案