2015-06-22 5 views
0

Я делал приложение, которое должно запускать код python в C++. Но когда я запускаю этот код, он дает ошибку сегментации в Linux. Кто-нибудь знает, что это может быть?запустить код python в C++

Py_SetProgramName("programName"); 
    Py_SetPythonHome("/usr/lib/python2.7"); 

    Py_Initialize(); 
    PyRun_SimpleString("import sys"); 

    Py_Finalize(); 
+1

Вы можете разместить весь исходный код, который вы работаете? (включая и т. д.) –

+0

#include Я просто включил это. Для этого кода – NoiZeR

+0

Насколько я знаю, он будет работать до py_initialize(), после чего он выйдет из строя с ошибкой сегрегации. – NoiZeR

ответ

0

Использование следующим образом:

#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); 
    // ... 
+0

Какими должны быть параметры в PySys_SetArgv (argc, argv).? – NoiZeR

+0

Это аргументы argc и argv, заданные командной строкой для программы cpp. Они также должны быть отправлены на код Python. 'argv [0]' - это имя программы. Однако вам не нужно указывать что-то особенное. – Claudio

+0

будет ли это чересчур разницу с PySys_setArgv (argc, argv); ? – NoiZeR

Смежные вопросы