当前位置: 首页 > news >正文

python生成动态库在c++中调用

一.Windows下生成动态库.pyd

在setup.py的同目录下使用python setup.py build_ext --inplace

二.在vscode的c++中使用.pyd文件(动态库)

1)配置python的环境

python -c "import sys; print(sys.executable)" #确定python安装位置

2)修改vscode中python的链接关系

2.1)修改tasks.json

2.2)修改launch.json

3)对应的vscode代码:

#include <iostream>
#include <Python.h>
using namespace std;int main() {Py_SetPythonHome(L"D:\\Conda\\envs\\yolo");  // 设置 Python 解释器路径Py_Initialize();  // 初始化 Python 解释器// 添加 .pyd 所在路径到 sys.path//E:\Code\VScode\Project_test\mymodule.cp39-win_amd64.pydPyRun_SimpleString("import sys");PyRun_SimpleString("sys.path.append('E:\\Code\\VScode\\Project_test')");// 导入 .pyd 模块PyObject* pModule = PyImport_ImportModule("mymodule");  // 不带 .pyd 后缀if (!pModule) {PyErr_Print();std::cerr << "Failed to load module\n";return 1;}// 获取函数PyObject* pFunc = PyObject_GetAttrString(pModule, "add");  // 函数名if (PyCallable_Check(pFunc)) {PyObject* pArgs = PyTuple_Pack(2, PyLong_FromLong(10), PyLong_FromLong(32)); //传入两个参数10,32.相加为42PyObject* pValue = PyObject_CallObject(pFunc, pArgs);long result = PyLong_AsLong(pValue);std::cout << "Result from Python: " << result << std::endl;Py_XDECREF(pValue);Py_DECREF(pArgs);} else {PyErr_Print();std::cerr << "Function not callable\n";}Py_XDECREF(pFunc);Py_DECREF(pModule);Py_Finalize();  // 关闭解释器cout<<"hello world";return 0;
}

4)结果:

相关文章:

  • 基于Spring Boot实现文件秒传的完整方案
  • Hibernate的组件映射
  • RPA系统应用通用文字识别技术,推动 RPA 在各个领域的广泛应用和发展
  • 信奥中的数学
  • 进程与线程:03 用户级线程
  • 系分论文《论数据中台建设的分析和应用》
  • HADOOP 3.4.1安装和搭建(尚硅谷版~)
  • uv运行一个MCP Server的完整流程
  • XAttention
  • 人工智能100问☞第9问:什么是AI芯片?
  • 基于SpringBoot的高校体育馆场地预约管理系统-项目分享
  • 理性决策与情绪偏差
  • 永磁同步电机参数辨识算法--递推最小二乘法辨识
  • 让专业更轻盈,让启蒙更智能——特伦斯便携钢琴V30Pro
  • Stable Diffusion 制作角色三视图
  • HXBC编译相关错误
  • 深度学习:人工智能的核心驱动力
  • 影刀RPA - 简单易用且功能强大的自动化工具
  • wkhtmltopdf - HTML转PDF/图像命令行工具
  • CSS字体
  • 德国旅游胜地发生爆炸事故,11人受伤
  • 李强签署国务院令,公布修订后的《中华人民共和国植物新品种保护条例》
  • 空调+零食助顶级赛马备战,上海环球马术冠军赛即将焕新登场
  • 国家网信办举办在欧中资企业座谈会,就数据跨境流动等进行交流
  • 建发股份:将于5月6日召开股东大会,审议提名林茂等为公司新一届董事等议案
  • 绿地控股:今年一季度营业收入356亿元,中高层管理人员带头降薪