当前位置: 首页 > 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)结果:

http://www.xdnf.cn/news/71263.html

相关文章:

  • 【JavaEE】计算机的工作原理
  • 乐家桌面纯净版刷机ROM下载 乐家桌面纯净版2025官方最新下载
  • 会话跟踪技术:让我们更懂用户
  • 使用stream进行列表循环和直接forEach循环的差异及使用场景
  • 环形缓冲区容量耗尽解决方案
  • 如何判断设备是否支持带电插拔——从原理到实操的全面解析
  • C# 运算符:?.(null 条件运算符)和 ??(null 合并运算符)
  • AI技术驱动SEO关键词策略革新
  • 接口测试流程和步骤
  • 基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线
  • 【Andorid备案获取keystore里面的公钥和SHA-1码等等】
  • Linux——入门常用基础指令
  • 前端通过jenkins和docker打包部署流程
  • 爬虫获取sku信息需要哪些库
  • 入门-C编程基础部分:16、 预处理器
  • 如何动态调整Python爬虫的Request请求延迟
  • Java写数据结构:栈
  • MySQL《事务》
  • ts中的类型
  • 【EasyPan】application.properties配置文件解析
  • 企业常见漏洞类型
  • 《浔川代码编辑器v2.0内测(完整)报告》
  • 创新项目实训开发日志3
  • 深度剖析d3dx9_42.dll错误:从原理到解决d3dx9_42.dll丢失方案
  • 总结设计测试用例的万能公式
  • 企业微信-自建应用
  • opencv 对图片的操作
  • c++学习之---vector
  • 华为认证HCIE考试费用总结
  • 平均精确度(Average Precision, AP)和均值平均精确度(Mean Average Precision, mAP)的区别和联系浅析