C++调用Python代码详细步骤

Python版本3.9 工具:VS2019、PyCharm

一 Python环境配置

1.1 安装python环境,获取外部依赖库
C++调用Python代码详细步骤_第1张图片
C++调用Python代码详细步骤_第2张图片
C++调用Python代码详细步骤_第3张图片
安装好Python环境后可以在安装路径的libs里面看到python39_d.lib这个文件 (其他教程里是把python39.lib复制一份,重命名位python39_d.lib)
C++调用Python代码详细步骤_第4张图片

二 VS环境配置

先创建项目,创建以后点击
C++调用Python代码详细步骤_第5张图片
包含目录里加入你的Python安装路径的include文件路径,我的是C:\Python39\include 记得加 ; 这个符号
C++调用Python代码详细步骤_第6张图片
C++调用Python代码详细步骤_第7张图片
库目录里加入你的Python安装路径的libs文件路径,我的是C:\Python39\libs 记得加 ; 这个符号
C++调用Python代码详细步骤_第8张图片
C++调用Python代码详细步骤_第9张图片
接着点击链接器,在链接器的输入里的附加依赖项里添加Python安装路径的libs里的python39_d.lib的路径,我的是C:\Python39\libs\python39_d.lib
C++调用Python代码详细步骤_第10张图片
C++调用Python代码详细步骤_第11张图片
点击应用后就能使用C++调用Python脚本了!
写个简单的Python模块

#Pytest.py 模块
def GetInfomation():
    print("This is a test file!\n")
def GetNumberSum(x,y):
    return x + y

用C++调用Pytest.py

#include 
#include "python.h"
int main()
{
     
    Py_Initialize();    //初始化
    if (!Py_IsInitialized())    //判断初始化是否成功
        return 0;
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('./')");     //这一步很重要,修改Python路径
    PyObject* pMode = PyImport_ImportModule("Pytest");     //载入调用的文件
    if (!pMode)
        return 0;
    PyObject* pFunc = PyObject_GetAttrString(pMode,"GetInfomation");    //获取调用文件内的函数
    if (!pFunc)
        return 0;
    PyObject_CallObject(pFunc, NULL);     //运行调用文件函数
    pFunc = PyObject_GetAttrString(pMode, "GetNumberSum");
    if (!pFunc)
        return 0;
    PyObject* Args = PyTuple_New(2);    //初始化要传入的参数个数,args配置成传入两个参数的模式  
    PyTuple_SetItem(Args, 0, Py_BuildValue("i", 3));     //配置Args带入的第一个参数 
    PyTuple_SetItem(Args, 1, Py_BuildValue("i", 5));     //配置Args带入的第二个参数 
    PyObject* pReturn = PyObject_CallObject(pFunc, Args);
    int NumberSum = 0;
    PyArg_Parse(pReturn, "i", &NumberSum);    //转换返回类型
    std::cout << NumberSum;
    Py_Finalize();    //结束(与 Py_Initialize() 相对)
    return 0;
}

运行结果:
C++调用Python代码详细步骤_第12张图片
注意把Python.py文件放在VS项目的目录下,如果位置不正确调用不了!

你可能感兴趣的:(c++,python)