【问题标题】:SWIG to call python code from within cSWIG 从 c 中调用 python 代码
【发布时间】:2014-07-25 21:26:20
【问题描述】:

我用 c 编写了一个 mpi 应用程序,它对 n 个正随机整数进行排序。我想在上面放一个图形前端,想知道是否有办法通过 SWIG 使用 Python 的图形库来做到这一点。我想我可以求助于 TCP 或 UDP 套接字。我没有使用 SWIG 或套接字的经验,但感觉套接字相当复杂并且知道 Python。

我希望能在代码示例和/或学习材料方面提供一些帮助,或者只是从这份列表的读者那里获得一些书面的 cmets。

谢谢,斯科特

【问题讨论】:

  • 图形库与网络有什么关系?
  • 我想以某种方式在 gui 上绘制随机整数,以让其他人了解正在发生的事情,因为这些值是从图形上的一组随机点排序到某种平滑曲线的。
  • stackoverflow.com/a/9042139/168175 可能就是您要找的。​​span>

标签: python c sockets mpi swig


【解决方案1】:

您的问题非常模棱两可,但我假设您有一个 C 程序并且您想使用 Python 库进行一些绘图。

看起来您只需要嵌入 Python 解释器。有一个official guide on embedding.

这很简单:

#include <Python.h>

int
main(int argc, char *argv[])
{
  Py_SetProgramName(argv[0]);  /* optional but recommended */
  Py_Initialize();
  PyRun_SimpleString("from time import time,ctime\n"
                     "print 'Today is',ctime(time())\n");
  Py_Finalize();
  return 0;
}

只需在此处输入您的绘图脚本即可。 MPI 没有任何区别。

【讨论】:

  • 那么,当您说“在此处输入”时,您是指在 Py_Initialize() 和 Py_Finalize() 之间吗?而且,只是为了检查我的理解,这个部分将 Python 暴露给我的 C 代码?我可以将我的 C 代码放在这段代码中,它会允许 C 代码调用 Python GUI 代码来绘制我的内部值?
  • python代码是PyRun_SimpleString的参数。
  • 我明白了。所以,我应该把我所有的 Python 代码放到函数中,我可以用 PyRun_SimpleString() 来包装?
猜你喜欢
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多