【发布时间】:2015-09-14 08:36:12
【问题描述】:
我想在 C 中调用以下 python 脚本:
#!/usr/bin/python2.7
import parser
def evaluate(text):
code = parser.expr(text).compile()
return eval(code)
如下页https://docs.python.org/2/extending/embedding.html 中所述,我可以使用文件的 pwd(path) 从 C 调用此脚本。
但是,我想知道是否可以通过直接在 C 字符串上调用 python 来定义脚本来不加载脚本。
例如,我想说我把:
#define PYTHON_SCRIPT ((char*)(\
import parser\
\
def evaluate(text):\
code = parser.expr(text).compile()\
return eval(code)\
))
是否可以直接在该字符串上调用 python 解释器?
确实,知道我需要将文本作为变量传递,我不能使用这个 Pyrun_SimpleString 函数,而且我无法找到答案来回答这个问题。
【问题讨论】:
-
Python-C-API 中没有
PyRun_FromString函数。你的意思是PyRun_SimpleString?为什么你不能使用它?这是在 C 中执行 Python 的一种可能方式。 -
啊是的,我更正了。 PyRun_SimpleString 的问题在于它似乎没有将变量作为参数......