Python.h
을 사용하여 C++ 프로그램에서 Python 스크립트를 실행하려고합니다. 이 C++ 프로그램은 (make install
) /usr/bin
에 설치할 수 있기 때문에 Python 스크립트를 자체 디렉토리 (설치되지 않은 경우) 또는 PATH 환경 변수 디렉토리 중 하나에서 찾을 수 있어야합니다.C++의 PATH에서 Python 스크립트 가져 오기
나는 일을 시도 :
PyObject *pName = PyString_FromString(scriptName); // scriptName is "file.py" as a char*
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\".\")");
PyObject *pModule = PyImport_Import(name); // not working because absolute path only
//since Python 2.7 ?
및
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\".\")");
PyObject *pModule = PyImport_ImportModuleEx(scriptName, NULL, NULL, NULL);
그러나 모두가이 호출 후
pModule == NULL
로 날 떠나하지만 자신의 디렉토리에서 C++ 모듈을 실행하면 작동합니다.
주셔서 감사합니다 C의 ++ 파이썬 스크립트의 루트 디렉토리 이 프로세스의 현재 작업 디렉토리 경우에만 파이썬 스크립트에 대한 경로로 당신의 도움을 많이
몇 가지 질문 : 1) 응용 프로그램이 python 스크립트가 포함 된 디렉토리에서 실행됩니까? 2) Py_Initialize 전에 PySys_SetArgvEx를 호출 해 보았으며 응용 프로그램 경로를 설정 했습니까? –
1) 물론'make '는 C++ 실행 파일을 Python 스크립트가 위치한 디렉토리에 넣습니다. 'make install'은 C++ 실행 파일과 Python 스크립트를'usr/bin' (또는 사용자가 설치하고자하는 곳)에 복사합니다. 2) 나는 C++ 프로그램의이 부분이'main'과 원래 argc' 및'argv' 변수에서 상당히 떨어져 있기 때문에 대부분 그렇지 않습니다. 응용 프로그램 경로를 설정하려면 그렇게해야합니까? – wrousseau