向现有 Python 应用程序添加 IPC 支持 [关闭]
Posted
技术标签:
【中文标题】向现有 Python 应用程序添加 IPC 支持 [关闭]【英文标题】:Adding IPC support to existing Python applications [closed] 【发布时间】:2013-03-18 20:38:12 【问题描述】:我从 Python 开始,我试图了解 Cpython 如何与 OS shell 中的常用“Python 控制台”和某些应用程序提供的 Python API 一起工作,现在我需要某种可以提供的解决方案回调机制和与其他进程/应用程序的通信通道。
我想知道是否有一种简单的方法可以做到这一点,例如在编译 Cpython 或我的 Python API 的模块之前修改 2-3 个键值,毕竟这些特性对于现代应用程序来说是非常普遍的要求。
那么,Cpython 是否有任何隐藏的 IPC 相关功能?
谢谢。
【问题讨论】:
你在这里问什么?你的问题意义不大。您能否尝试描述您的更大问题,我们可以提供如何使用 Python 解决问题的答案。请编辑问题并提供更多背景信息以及您为什么要做您认为您正在做的事情。 @MikkoOhtamaa 使用了一些方法/API,我得到了通知。一个简单的回调机制。 所以你想在调用一些内部 Python 方法时得到通知?为什么? @MikkoOhtamaa 是的,这个想法是跟踪任何调用,作为一项额外功能,我还想访问在给定 Python 控制台中提供和构建的数据结构。 有一些称为配置文件的工具可能会为您解决问题。但是,您仍然不知道为什么要跟踪呼叫。 【参考方案1】:您需要将函数和对象显式映射到远程 API,无法自动将所有代码变为远程感知(尽管某些代码可以按原样变为远程感知)。然而,由于 Python 的动态特性,创建自动“映射器”并不是很困难。
有一些常见的远程过程调用 (RPC) 和进程间事件通知协议 Python 支持开箱即用,或者很容易使用附加包
zerorpc https://github.com/dotcloud/zerorpc-python(从示例来看,似乎集成工作最少)
XML-RPC http://docs.python.org/2/library/xmlrpclib.html
ProtoRPC(由 Google 提供)https://developers.google.com/appengine/docs/python/tools/protorpc/overview
DBUS (Linux) http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html
【讨论】:
谢谢,这是我第一次进入 IPC 世界,我希望这将是简单有效的 在调用任何函数时自动运行回调的方式是sys.settrace()
。虽然它可能不应该在 OPs 案例中使用。以上是关于向现有 Python 应用程序添加 IPC 支持 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何为现有 iOS 应用添加 CarPlay 支持? [复制]