windows 下 c++ 如何调用 python 3

本文所使用环境: win10 (x64) +  VS2013 + python 3.5.2 (x64)

python官网下载地址

一、先配置环境

1.安装python

2.把 python 添加到VS2013

    (1) VS新建一个空的Win32控制台项目,取名为test_python,项目保存路径为 D:\test\testpython35

    (2) 将 python 安装目录下的,include文件夹、libs文件夹都拷贝到test_python35文件夹中;  

                

(3) 然后添加vs的包含目录

   

(4) 然后生成解决方案,在生成的Debug路径下添加python35.dll(python的安装路径里面有)、调用的python原函数(Test001.py),如下图所示

(5) 重新生成解决方案,再次运行就可以了。

 

附录:

Test001.py

def Hello():
    print("Hello Python")

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

main.cpp:

// testpython.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <Python.h>
using namespace std;

void Hello()
{
	Py_Initialize();//调用Py_Initialize()进行初始化
	PyObject * pModule = NULL;
	PyObject * pFunc = NULL;
	pModule = PyImport_ImportModule("Test001");//调用的Python文件名
	pFunc = PyObject_GetAttrString(pModule, "Hello");//调用的函数名
	PyEval_CallObject(pFunc, NULL);//调用函数,NULL表示参数为空
	Py_Finalize();//调用Py_Finalize,和Py_Initialize相对应的.
}
//调用Add函数,传两个int型参数
void Add()
{
	Py_Initialize();
	PyObject * pModule = NULL;
	PyObject * pFunc = NULL;
	pModule = PyImport_ImportModule("Test001");//Test001:Python文件名
	pFunc = PyObject_GetAttrString(pModule, "Add");//Add:Python文件中的函数名
	//创建参数:
	PyObject *pArgs = PyTuple_New(2);//函数调用的参数传递均是以元组的形式打包的,2表示参数个数
	PyTuple_SetItem(pArgs, 0, Py_BuildValue("i", 6));//0--序号,i表示创建int型变量
	PyTuple_SetItem(pArgs, 1, Py_BuildValue("i", 8));//1--序号
	//返回值
	PyObject *pReturn = NULL;
	pReturn = PyEval_CallObject(pFunc, pArgs);//调用函数
	//将返回值转换为int类型
	int result;
	PyArg_Parse(pReturn, "i", &result);//i表示转换成int型变量
	cout << "6 + 8 = " << result << endl;
	Py_Finalize();
}

int _tmain(int argc, _TCHAR* argv[])
{
	cout << "调用Test001.py中的Hello函数..." << endl;
	Hello();
	cout << "\n调用Test001.py中的Add函数..." << endl;
	Add();
	getchar();
	return 0;
}

 

参考:

C++调用Python实例

混合编程之——C++调用python2.7&python3.5

猜你喜欢

转载自blog.csdn.net/CSDN330/article/details/83058255
今日推荐