首页 > 系统相关 >Windows环境 CMake 配置C++调用Python

Windows环境 CMake 配置C++调用Python

时间:2023-12-25 16:31:33浏览次数:28  
标签:CMake target TestDemo Windows C++ python int main python3

# CMakeLists.txt
add_library( python3
        STATIC
        IMPORTED )
# 这里是使用python的安装路径
set_target_properties( python3
        PROPERTIES IMPORTED_LOCATION
         "D:/python/libs/python39.lib")
# 使用python的静态库
target_link_libraries(TestDemo python3)
# 添加python的头文件
target_include_directories(TestDemo PUBLIC "D:/python/include")
#main.py
def add(a, b):
    return a + b
//main.cpp
int main(int argc, char *argv[])
{
    Py_Initialize();
    if (!Py_IsInitialized()) {
        qDebug() << "初始化失败";
    }
    qDebug() << "初始化成功!";
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('./')");


    PyObject* pModule = PyImport_ImportModule("main");

    if (!pModule) {
        qDebug() << "获取pModule模块指针失败";
        return 0;
    }

    PyObject* pFunc = PyObject_GetAttrString(pModule, "add");
    if (!pFunc) {
        qDebug() << "获取函数指针失败";
        return 0;
    }
    PyObject* pPara = PyTuple_New(2);
    PyTuple_SetItem(pPara, 0, Py_BuildValue("i", 100));
    PyTuple_SetItem(pPara, 1, Py_BuildValue("i", 200));

    PyObject *FuncBack = PyObject_CallObject(pFunc, pPara);
    int res = 0;
    PyArg_Parse(FuncBack, "i", &res);
    qDebug() <<"调用python函数的返回值 = " <<res;
    Py_Finalize();
    return 0;
}

标签:CMake,target,TestDemo,Windows,C++,python,int,main,python3
From: https://blog.51cto.com/u_13893439/8970032

相关文章

  • Windows7运行谷歌浏览器Chrome报错
    问题描述Windows7安装了最新版的谷歌浏览器Chrome,每次打开直接报错:“chrome.exe-无法找到入口无法定位程序输入点SetProcessMitigationPolicy于动态链接库KERNEL32.DLL上” 问题分析更新了GoogleChrome110版本后,在Windows7上运行GoogleChrome,每次都会弹出这个......
  • CLR/C++回调函数callback和C# delegate的互相转换
    在进行CLR/C++进行开发的时候会经常遇到C++回调函数和C#的delegate之间的相互转换,例如在C++非托管类型的代码中的回调函数需要使用C#类的函数,或者是在C#代码中需要使用非托管C++的函数,这时候就需要在回调函数和delegate代理之间进行转换。C++:回调函数:typedefvoid(*pfunc)(in......
  • kafka 开启JMX监控(windows、linux)
    1.情景展示使用EFAK监控kafka的运行状态,需要kafka开启JMX监控。如何开启?2.windows来到KAFKA_HOME/bin/windows目录下。找到:kafka-server-start.bat,右键-->编辑。找到:IF["%KAFKA_HEAP_OPTS%"]EQU[""](我们可以看出,不同位数,走的不同配置。现在大部分电脑都是64位的......
  • 微软官方发布的C#开源、免费、实用的Windows工具箱
    微软官方发布的C#开源、免费、实用的Windows工具箱 思维导航前言项目介绍系统要求支持语言主要功能工具安装项目源代码部分功能截图项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言今天分享一款由微软官方发布的C#开源、免费、实用的Windows......
  • c++实现mp3
    c++实现http_mp4......
  • 运维工程师面试题整理(挂载windows下的共享目录 查看http的并发请求数 tcpdump嗅探80端
    1.linux如何挂载windows下的共享目录mount.cifs//192.168.1.3/server/mnt/server-ouser=administrator,pass=123456linux下的server需要自己手动建一个,后面的user与pass是windows主机的账号和密码,注意空格和逗号2.查看http的并发请求数与其TCP连接状态netstat-n|awk'/^......
  • C++U3-第06课-算法入门
    学习目标求和符号  连乘符号  指数     对数    算法概念与复杂度计算           vector向量容器      遍历 【思路分析】1、定义vector容器和变量n2、输入n3、输入n个......
  • 闲来无事!用C++采集天气预报信息
    最近比较闲,打算休年假,连着过年一起休,保守估计有20天,想利用这几天出去旅个游,关键不知道去哪里好,天气情况怎么样。因此,我写了一个爬取往年天气信息的爬虫程序,他可以自动采集目的地的往年几年的未来天气情况,并建立数据库做具体分析。#include<iostream>#include<string>#include<......
  • winscp连接windows虚拟机,显示被拒绝
     用户名密码正确的情况下,提示:网络错误,连接被拒绝1. 可以ping 通2. 关闭了防火墙,3. 检查是否开启ssh服务  https://blog.csdn.net/weixin_72910567/article/details/132414264检查方法:输入命令在PowerShell(管理员)模式下操作左下搜索框中输入 输入命令Get-Win......
  • Vmware17虚拟机安装windows10系统
    不要去什么系统之家之类的下载镜像,会不好安装,镜像被魔改过了,适合真实物理机上的系统在PE里安装系统,建议下载原版系统ISO文件安装vmware17pro下载地址https://dwangshuo.jb51.net/202211/tools/VMwareplayer17_855676.rar解压后打开这个就可以了,改过的安装器,你懂的VMware-Worksta......