在c+中运行python代码+; 我正在制作一个应用程序,需要在C++中运行Python代码。但是当我运行这段代码时,它在Linux中给出了一个分段错误。有人知道它可能是什么吗 Py_SetProgramName("programName"); Py_SetPythonHome("/usr/lib/python2.7"); Py_Initialize(); PyRun_SimpleString("import sys"); Py_Finalize();

在c+中运行python代码+; 我正在制作一个应用程序,需要在C++中运行Python代码。但是当我运行这段代码时,它在Linux中给出了一个分段错误。有人知道它可能是什么吗 Py_SetProgramName("programName"); Py_SetPythonHome("/usr/lib/python2.7"); Py_Initialize(); PyRun_SimpleString("import sys"); Py_Finalize();,c++,python-2.7,C++,Python 2.7,使用方法如下: #include <Python.h> // Attention: this MUST always be the first file included int main(int argc, char *argv[]) { Py_SetProgramName(argv[0]); // optional but recommended Py_Initialize(); PySys_SetArgv(argc, argv); //

使用方法如下:

#include <Python.h> // Attention: this MUST always be the first file included

int main(int argc, char *argv[])
{
    Py_SetProgramName(argv[0]);  // optional but recommended
    Py_Initialize();
    PySys_SetArgv(argc, argv);  
    // ...
#include//注意:这必须始终是包含的第一个文件
int main(int argc,char*argv[])
{
Py_SetProgramName(argv[0]);//可选但推荐
Py_初始化();
PySys_SetArgv(argc,argv);
// ...

你能发布你正在使用的全部源代码吗?(包括等)#包括我只包括这个。就我所知,这个代码将运行到py_initialize()为止然后它将因分段错误而崩溃抱歉,它将在simpleString方法上崩溃您使用的是什么操作系统?您试图执行的Python文件中有什么?PySys_SetArgv(argc,argv)的反参数应该是什么.?它们是命令行给cpp程序的argc和argv参数。它们也必须转发给Python代码。
argv[0]
是程序名。但是,您不必在那里指定任何特殊的内容。这与PySys_setArgv(argc,argv)有什么区别吗试着自己检查一下……这是推荐的方法,它在我的Linux系统上运行。不幸的是,我没有看过这些函数的内部实现,所以我无法回答这个问题。好的,我试过了,但它给出了一个分段错误。好的,你还需要知道什么,我使用naoqi sdk编译它。这里我制作一个模块对于我的nao机器人。这个模块需要运行python代码,正如你上面所说的。但是,当我运行它时,我不能用它给参数。然后我需要硬编码参数。我应该在参数中输入什么?