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程序设计入门(1)基本语法简介
Jun 13 Python
Python的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
May 06 Python
在Python中用split()方法分割字符串的使用介绍
May 20 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
使用python和Django完成博客数据库的迁移方法
Jan 05 Python
在pycharm中设置显示行数的方法
Jan 16 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 Python
通过Python pyecharts输出保存图片代码实例
Nov 25 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实现paypal整合方法
2010/11/28 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
python 队列详解及实例代码
2016/10/18 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
Python实现直播推流效果
2019/11/26 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
详解anaconda安装步骤
2020/11/23 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
高中生毕业学习总结的自我评价
2013/11/14 职场文书
高三高考决心书
2014/03/11 职场文书
服务承诺书格式
2014/05/21 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技