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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python画图学习入门教程
Jul 01 Python
python学习教程之使用py2exe打包
Sep 24 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
vue项目中axios使用详解
2018/02/07 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
解决VUEX的mapState/...mapState等取值问题
2020/07/24 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
python实现在windows下操作word的方法
2015/04/28 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
python邮件发送smtplib使用详解
2020/06/16 Python
python爬虫添加请求头代码实例
2019/12/28 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
法律专业自我鉴定
2013/10/03 职场文书
专业技术职务聘任书
2014/03/29 职场文书
人事经理岗位职责
2014/04/28 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
追讨欠款律师函
2015/05/27 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang