【发布时间】:2012-10-23 03:04:56
【问题描述】:
我有一个用 C++ 编写的程序,带有一个用于 RPC 的 Web 界面。我可以调用http://localhost/ListVariables 或http://localhost/RunFunction?var=1 并让C 代码执行ListVariables 或RunFunction。它可以工作,但是当有这么多优秀的 Python Web 服务器时,我宁愿不必在 C/C++ 中管理 Web 服务器。
我想象的是让 C 程序调用 Python 以在另一个线程(即 Tornado)上启动 Web 服务器,返回到 C,然后继续进行计算。然后,当 Python 服务器收到http://localhost/ListVariables 上的请求时,它会将 back 调用到 C 中并在已经运行的进程上执行 ListVariables。
C -----> processing -----------> processing ------------> RPC: FuncA -------->
| ^ |
\---> Python Web Server ---------- Request for: FuncA --/ ... \-------->
^
browser: http://localhost/FuncA ---/
该项目有一个不幸的警告,即程序必须从 C 开始。在做了一些研究之后,这似乎是一个边界案例,因为 Python-->C 和 C-->Python 可以用 Cython 完成。但是,我在 C-->Python-->C 上找不到很多资源,因为我发现的大多数示例都描述了链接到库而不是链接到已经运行的进程。是否可以让 Python 回调到正在运行的 C 程序中?
【问题讨论】:
标签: c++ python c http embedded