本文主要是介绍C++ 调用Python(Pyc文件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文地址:https://blog.csdn.net/horizons_kong/article/details/79030183
注:本文默认已经正确安装Python3.4
1.编辑PythonLib.py文件,内容如下(主要定义了两个函数):
2.运行cmd窗口,定位到PythonLib.py文件所在目录,(我的在E:\PythonPro\PythonLib\PythonLlib\PythonLib中):
3.生成XX.pyc文件
在cmd窗口中输入python -m py_compile PythonLib.py
如下:
执行完后在当前目录中生成__pycache__文件夹,其中有.pyc文件,将其更名问PythonLib.pyc
4.新建C++工程sample,将Python3.4的include文件夹和libs文件夹复制到这个工程目录下
5.属性-链接器-常规-附加库目录,添加libs的路径
6.属性-链接器-附加依赖项,添加Python34.Lib
7.sample.cpp中的代码
#include "stdafx.h"
#include "include/Python.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{Py_Initialize();if ( !Py_IsInitialized() ){ return -1; } PyObject *pModule,*pFunc,*pArgs;pModule = PyImport_ImportModule("PythonLib");//PythonLib:Python文件名pFunc = PyObject_GetAttrString(pModule, "Add");//Add:Python文件中的函数名//创建参数: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;// 关闭Python int i;cin>>i;return 0;
}
8.将步骤3生成的PythonLib.pyc复制到工程目录下,运行程序
成功调用了pyc文件
这篇关于C++ 调用Python(Pyc文件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!