您的位置:首页 > 编程语言 > C语言/C++

C++ 调用python程序

2019-04-03 17:08 183 查看

环境:win10+VS2015+Python3.5

python代码

test_python.py

def Add(a,b):
return  a+b

C++代码

main.cpp

#include <Python.h>

#include <iostream>
using namespace std;

double testAdd(int a, double b)
{
Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");

PyObject* pModule = PyImport_ImportModule("test_python");
PyObject* pFunc = PyObject_GetAttrString(pModule, "Add");

// 传入参数: i-int d-double
PyObject* pArgs = Py_BuildValue("id", a, b);
PyObject* pReturn = PyEval_CallObject(pFunc, pArgs);
double nResult;
PyArg_Parse(pReturn, "d", &nResult);

Py_Finalize();
return nResult;
}

int main()
{
cout << testAdd(1, 2.34) << endl;
return 0;
}

VS2015 VC++目录:

  1. 包含目录:C:\Users\wenka\Anaconda3\envs\py35\include
  2. 库目录:C:\Users\wenka\Anaconda3\envs\py35\libs

环境变量:

Path=C:\Users\wenka\Anaconda3\envs\py35

PYTHONPATH=C:\Users\wenka\Anaconda3\envs\py35\DLLs;C:\Users\wenka\Anaconda3\envs\py35\Lib;C:\Users\wenka\Anaconda3\envs\py35\Lib\site-packages

PYTHONHOME=C:\Users\wenka\Anaconda3\envs\py35
我用的是Anaconda下的python,其他python路径类似

注意事项

  1. main.cpp test_python.py python35.dll在同一个文件夹下

    2.请一定先确保python代码没有错误!!!
    C++调用python时,如果python代码有问题,C++不会报错

Python与C++类型转换

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: