python - 从 CAPI 评估 Python 代码并获得输出

标签 python python-c-api

我正在尝试从嵌入式 Python C API 模拟 code.InteractiveInterpreter。我正在使用 PyEval_Evalcode 来评估用户输入。我正在尝试评估解释器中的用户输入并将输出作为字符串返回(就像解释器一样)。但是,PyEval_Evalcode 返回包装在 PyObject* 中的多种数据类型。有什么办法可以做我想做的事吗?

约束:需要使用嵌入 api 来完成。无法使用 PyRun_RunSimpleString() 并放置一个 code.InteractiveInterpreter 来完成。

最佳答案

可以使用 PyObject_Repr() 或 PyObject_Str() 将 PyEval_Evalcode() 返回的对象转换为 Python 字符串。可以使用 PyString_AsString() 将生成的 Python 字符串转换为常规 C 字符串。

关于python - 从 CAPI 评估 Python 代码并获得输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860958/

相关文章:

python - 在 Python 中启用评估语句的自动打印?

python - 在处理 C 代码时是否存在任何 Python 引用计数/垃圾收集问题?

python - PyArg_ParseTupleAndKeywords 如何工作?

python - loadNamespace(name) 开罗时出错

python - Django 兼容的网络托管服务

python - Pandas - 比较行中的列 ID 并有条件删除

python - 嵌入Python的C程序: How to restrict process to not open files nor sockets?

python - 参数指向 PySys_SetArgv() 的字符串是否应该保留在内存中直到 Py_Finalize()?

javascript - Django + Vue.js 问题

python - 改进DNA比对去间隙的代码设计