pybind11在Windows下的使用教程


Posted in Python onJuly 04, 2019

Pybind11算是目前最方便的Python调用C++的工具了, 介绍一下在vs2019上写Python的扩展的HelloWorld

1. 去下载pybind11   https://github.com/pybind/pybind11/releases/tag/v2.3.0 

这个库只要include就可以了

2. 用vs新建一个空项目

2.1 调整输出类型为dll, 调整输出文件名为pyd

pybind11在Windows下的使用教程

pybind11在Windows下的使用教程

2.2 include python和pybind11的头文件, 我的python使用anaconda的全家桶

pybind11在Windows下的使用教程

2.3 链接 python的lib

pybind11在Windows下的使用教程

2.4 linker里添加python的lib

pybind11在Windows下的使用教程

3. 代码示例:

有两种定义函数的方法, 一种是直接定义, 另一种比较简单就是 def("函数名",&函数的引用,"说明")

Pybind非常的简单, 几乎就不用修改C++的代码

#include <pybind11/pybind11.h>

namespace py = pybind11;

int chufa(int a, int b)
{
  return a / b;
}

PYBIND11_MODULE(example, m) {
  m.doc() = "....";
  m.def("foo", []() {
    return "Hello world!";
    });
  m.def("chufa", &chufa, "just chufa");
}

4. build 得到pyd文件

pybind11在Windows下的使用教程

在python中直接import就可以了...

5. 坑:

1. 要注意编译出来的是64位还是32位的包, 建议全部在64位下编译, 否则可能会报错:

ImportError: DLL load failed: %1 is not a valid Win32 application. But the DLL's are there

2. pyd的文件名要和包名一致, 如果输出的pyd文件名称不对需要手动改过来, 否则会报错误:

ImportError: dynamic module does not define module export function 

总结

以上所述是小编给大家介绍的pybind11在Windows下的使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
跟老齐学Python之眼花缭乱的运算符
Sep 14 Python
python中as用法实例分析
Apr 30 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
django+js+ajax实现刷新页面的方法
May 22 Python
python距离测量的方法
Mar 06 Python
Python解析并读取PDF文件内容的方法
May 08 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 Python
Pycharm 解决自动格式化冲突的设置操作
Jan 15 Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 #Python
Pycharm简单使用教程(入门小结)
Jul 04 #Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 #Python
Python读取xlsx文件的实现方法
Jul 04 #Python
使用python进行广告点击率的预测的实现
Jul 04 #Python
python命令行工具Click快速掌握
Jul 04 #Python
python 设置输出图像的像素大小方法
Jul 04 #Python
You might like
php 信息采集程序代码
2009/03/17 PHP
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
php中chdir()函数用法实例
2014/11/13 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
28个JS验证函数收集
2010/03/02 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
python中_del_还原数据的方法
2020/12/09 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
电气工程和自动化自荐信范文
2013/12/25 职场文书
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
法院信息化建设方案
2014/05/21 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
买房协议书范本
2014/10/23 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
Python中文纠错的简单实现
2021/07/07 Python
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android