【问题标题】:how to execute a python (2.7) script from a c program in Windows如何从 Windows 中的 c 程序执行 python (2.7) 脚本
【发布时间】:2014-02-01 06:27:22
【问题描述】:

我一直在寻找这个解决方案,但找不到解决方案。一些解决方案建议在 .然而,这个建议之后总是有 10 个人说永远不要使用系统,因为它缺乏线程安全性。有谁知道怎么做?

只是一些信息:我的 python 脚本从 Internet 获取并解析 JSON,然后创建一个文本文件,然后 c 程序使用该文件。因此,我不想运行一个,然后另一个,我想从 C exe 连续运行它们。

编辑:语法

【问题讨论】:

  • 您可能有两个独立的程序,一个用于获取 JSON 并为其准备数据,另一个用于获取准备好的数据并产生一些结果。例如,您可以使用将事物粘合在一起的批处理文件。因此,您将获得简单性和原子性,这将允许您像乐高构造函数一样构建复杂而灵活的解决方案。
  • 您是否考虑过反过来做——即从 Python 脚本调用 C 函数?这是 Python 社区通常推荐的方法。
  • 我没有,我会调查这个。谢谢

标签: python c execution


【解决方案1】:

你可以在c,c++中使用系统函数

喜欢这个

 system("python ashouri.py");

使用此代码

  static PyObject *my_callback = NULL;

  static PyObject *
  my_set_callback(PyObject *dummy, PyObject *args)
  {
      PyObject *result = NULL;
      PyObject *temp;

      if (PyArg_ParseTuple(args, "O:set_callback", &temp)) {
          if (!PyCallable_Check(temp)) {
              PyErr_SetString(PyExc_TypeError, "parameter must be callable");
              return NULL;
          }
          Py_XINCREF(temp);         /* Add a reference to new callback */
          Py_XDECREF(my_callback);  /* Dispose of previous callback */
          my_callback = temp;       /* Remember new callback */
          /* Boilerplate to return "None" */
          Py_INCREF(Py_None);
          result = Py_None;
      }
      return result;
  }

成功

【讨论】:

  • 你必须包含哪些库?
猜你喜欢
  • 2015-08-28
  • 1970-01-01
  • 2011-05-21
  • 2021-01-27
  • 2011-07-10
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多