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内置函数Type()函数一个有趣的用法
Feb 18 Python
Python从MP3文件获取id3的方法
Jun 15 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
Python实现的爬虫功能代码
Jun 24 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
Python使用PyYAML库读写yaml文件的方法
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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
jquery实现动态画圆
2014/12/04 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
材料加工硕士生求职信
2013/10/10 职场文书
应届大学生求职的自我评价
2013/11/17 职场文书
事务机电主管工作职责
2014/02/25 职场文书
网络技术专业求职信
2014/07/13 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
降价通知函
2015/04/23 职场文书
总结会主持词
2015/07/02 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL
Nginx的gzip相关介绍
2022/05/11 Servers