90得票10回答
从C/C++调用Python方法并提取其返回值

我想从C语言中调用在Python模块中定义的自定义函数。我有一些初步的代码来实现这个目标,但它只是将输出打印到标准输出流。 mytest.pyimport math def myabs(x): return math.fabs(x) test.cpp#include <Pyt...

52得票1回答
使用Python的C API创建一个对象。

假设我已经定义了我的对象布局:typedef struct { PyObject_HEAD // Other stuff... } pyfoo; ...以及我的类型定义:static PyTypeObject pyfoo_T = { PyObject_HEAD_INIT...

30得票3回答
如何在C++代码中捕获Python的标准输出

我有一个程序,在运行时有时需要调用Python来执行一些任务。我需要一个函数来调用Python并将Python的标准输出捕获并放入某个文件中。 这是该函数的声明 pythonCallBackFunc(const char* pythonInput) 我的问题是如何捕获给定命令的所有Pytho...

29得票1回答
多个独立的嵌入式Python解释器在多个操作系统线程中被从C/C++程序调用

将Python解释器嵌入C/C++应用程序是有文档记录的。在从C/C++应用程序调用的多个操作系统线程上运行多个Python解释器的最佳方法是什么(即在同一进程中的一个操作系统线程上运行一个解释器)?这些应用程序可能还存在与内存碎片化和Py_Finalize()的限制相关的问题。 其中一种方...

19得票4回答
在多线程C应用中嵌入Python

我正在将Python解释器嵌入到一个多线程的C应用程序中,对于确保线程安全,我有些困惑,不知道应该使用哪些API。 据我所知,在嵌入Python时,需要在调用任何其他Python C API之前先处理GIL锁,这由嵌入方自行完成。可以使用以下函数来实现:gstate = PyGILState...

17得票2回答
从C++应用程序中调用的嵌入式Python中,当导入multiarray扩展库时,Numpy导入失败

我正在运行一个C++应用程序,该应用程序尝试使用https://docs.python.org/3.5/extending/embedding.html函数调用来运行Python。这是应用程序错误消息管道给我的错误信息。 : 导入multiarray numpy扩展模块失败。很可能您正在尝...

17得票2回答
能否将PyPy嵌入到.NET应用程序中?

我想将Python解释器嵌入我的.NET应用程序中。当然,我知道IronPython,但我特别关注PyPy,因为它支持无栈和微线程。 然而,虽然PyPy可以针对CLI进行构建,但似乎这只会给你一个类似于python.exe的独立Python解释器。我没有找到任何构建能够实际嵌入.NET主机应...

16得票2回答
我的嵌入式Python标准输出(stdout)去哪了?

请考虑以下MWE:#include <Python.h> #include <stdio.h> int main(void) { printf("Test 1\n"); Py_Initialize(); printf("Test 2\n"); PyRu...

14得票1回答
使用动态版本的Python执行嵌入式Python代码时出现致命的Python错误

剧透警告:已部分解决(请查看结尾)。 以下是使用Python嵌入的代码示例:#include <Python.h> int main(int argc, char** argv) { Py_SetPythonHome(argv[1]); Py_Initializ...

13得票3回答
限制嵌入式Python的执行时间

如果我在C或C++程序中嵌入Python解释器,例如此示例,是否有限制解释器运行时间的方式? 是否有方法防止Python代码进入无限循环,从而阻止PyObject_CallObject(或等效函数)返回?同样地,如果Python代码创建了一个新线程,是否有任何方法防止该线程进入无限循环并一直运...