1.运行报错如下
In file included from /usr/include/python3.6/pytime.h:6:0,
from /usr/include/python3.6/Python.h:77,
from main.cpp:4:
/usr/include/python3.6/object.h:448:23: error: expected unqualified-id before ‘;’ token
PyType_Slot *slots; /* terminated by slot==0. */
^
Makefile:567: recipe for target 'main.o' failed
make: *** [main.o] Error 1
解决:
将以下头文件,放在所在 cpp文件的第一行。
#include <Python.h>
2.C++中循环调用python脚本,第二次程序运行至 PyImport_ImportModule
处出现段错误(Segmentation fault (core dumped)
)
解决:
将以下Python环境的初始化代码放在循环外,或者程序最初运行的位置
Py_Initialize();
if (!Py_IsInitialized()){
printf("Py_IsInitialized [fail] 无法初始化Python解释器\n");
return -1;
}
...
Py_Finalize();
3.PyImport_ImportModule
返回 NULL 指针
解决:在PyImport_ImportModule
调用前执行以下代码
PyRun_SimpleString( "import sys" );
PyRun_SimpleString( "sys.path.append('.')" );