C++调用python的jedi库问题,jedi库能够实现python代码的补全功能,我想要在C++调用python脚本获取补全的字符串
python脚本如下:
import jedi
def get_completions1(code, line, column):
# 使用Jedi创建一个脚本对象
script = jedi.Script(code)
# 获取补全建议
completions = script.complete(line, column)
return [comp.name for comp in completions]
C++部分代码如下:
std::string code = "import bin";
int line = 1;
int column = 10;
PyObject* pArgs;
pArgs = Py_BuildValue("(s,i,i)", code.c_str(), line, column);
PyObject* pValue = PyObject_CallObject(pFunc, pArgs);
现在的问题是当执行到PyObject_CallObject时开始调用python脚本中的函数,这时候电脑内存急剧升高到百分之99,这是发生了什么?,应该是从C++执行到python中的script = jedi.Script(code)时导致了内存的急剧升高从而导致整个系统卡死,后来我直接用python命令行跑了下这个脚本发现没有这个问题,但在C++调用却导致内存爆炸,大家知道是啥原因导致的吗,怎么修改?