C++에서 Python 인터페이스 호출
2016 단어 C++지식 포인트
http://blog.csdn.net/taiyang1987912/article/details/44779719
다음 블 로 그 를 참고 하면 VS 프로젝트 에 python 인 터 페 이 스 를 설정 하 는 방법 을 볼 수 있 습 니 다.
http://blog.csdn.net/c_cyoxi/article/details/23978007
다음 주 소 를 참고 하면 해결 할 수 있 습 니 다 VS 에 Python 27 이 없습니다.d.lib 의 질문,본인 선택 방법 2:
http://blog.sina.com.cn/s/blog_75e9551f0101aajd.html
인 스 턴 스 실행 코드 는 다음 과 같 습 니 다.
Cpp 코드:
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
Py_Initialize(); // python
if (!Py_IsInitialized())
{
cout << "initialized error" << endl;
return -1;
}
PyRun_SimpleString("import sys"); // python
PyRun_SimpleString("print 'come in python'");
PyRun_SimpleString("sys.path.append('./')");
PyObject *pName(0), *pModule(0), *pDct(0), *pFunc(0), *pArgs(0);
pName = PyString_FromString("pytest"); // pytest
pModule = PyImport_Import(pName);
if (!pModule)
{
cout << "can not find pytest.py" << endl;
return -1;
}
else
cout << "open Module" << endl;
pDct = PyModule_GetDict(pModule);
if (!pDct)
{
cout << "pDct error" << endl;
return -1;
}
pFunc = 0;
pFunc = PyDict_GetItemString(pDct, "add"); // add
if (!pFunc || !PyCallable_Check(pFunc))
{
cout << "pFunc error" << endl;
return -1;
}
pArgs = PyTuple_New(2); //
// , :
//s , C
//i
//f
//o python
PyTuple_SetItem(pArgs, 0, Py_BuildValue("i", 1));
PyTuple_SetItem(pArgs, 0, Py_BuildValue("i", 2));
PyObject_CallObject(pFunc, pArgs);
system("pause");
}
pytest.py 코드 는 다음 과 같 습 니 다.
def add(a,b):
print "come in add"
print a + b