pybind11在Windows下的使用教程
Pybind11算是目前最方便的Python調(diào)用C++的工具了, 介紹一下在vs2019上寫(xiě)Python的擴(kuò)展的HelloWorld
1. 去下載pybind11 https://github.com/pybind/pybind11/releases/tag/v2.3.0
這個(gè)庫(kù)只要include就可以了
2. 用vs新建一個(gè)空項(xiàng)目
2.1 調(diào)整輸出類(lèi)型為dll, 調(diào)整輸出文件名為pyd


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

2.3 鏈接 python的lib

2.4 linker里添加python的lib

3. 代碼示例:
有兩種定義函數(shù)的方法, 一種是直接定義, 另一種比較簡(jiǎn)單就是 def("函數(shù)名",&函數(shù)的引用,"說(shuō)明")
Pybind非常的簡(jiǎn)單, 幾乎就不用修改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文件

在python中直接import就可以了...
5. 坑:
1. 要注意編譯出來(lái)的是64位還是32位的包, 建議全部在64位下編譯, 否則可能會(huì)報(bào)錯(cuò):
ImportError: DLL load failed: %1 is not a valid Win32 application. But the DLL's are there
2. pyd的文件名要和包名一致, 如果輸出的pyd文件名稱(chēng)不對(duì)需要手動(dòng)改過(guò)來(lái), 否則會(huì)報(bào)錯(cuò)誤:
ImportError: dynamic module does not define module export function
總結(jié)
以上所述是小編給大家介紹的pybind11在Windows下的使用教程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
解決python3讀取Python2存儲(chǔ)的pickle文件問(wèn)題
今天小編就為大家分享一篇解決python3讀取Python2存儲(chǔ)的pickle文件問(wèn)題,具有很好的參考價(jià)值。希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python處理yaml和嵌套數(shù)據(jù)結(jié)構(gòu)技巧示例
這篇文章主要為大家介紹了Python處理yaml和嵌套數(shù)據(jù)結(jié)構(gòu)技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
python簡(jiǎn)單實(shí)現(xiàn)AES加密和解密
這篇文章主要為大家詳細(xì)介紹了python簡(jiǎn)單實(shí)現(xiàn)AES加密和解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
Python pip通過(guò)requirements.txt 文件安裝依賴(lài)
requirements.txt是定義項(xiàng)目依賴(lài)的python包,可通過(guò)工具生成,本文主要介紹了Python pip通過(guò)requirements.txt文件安裝依賴(lài),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Django事務(wù)transaction的使用以及多個(gè)裝飾器問(wèn)題
這篇文章主要介紹了Django事務(wù)transaction的使用以及多個(gè)裝飾器問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
使用Python的內(nèi)建模塊collections的教程
這篇文章主要介紹了使用Python的內(nèi)建模塊collections的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04
python 自動(dòng)提交和抓取網(wǎng)頁(yè)
最近在研究怎么樣做個(gè)自動(dòng)發(fā)帖器,要完成這個(gè)工具難度蠻大的,驗(yàn)證碼就是一個(gè)大問(wèn)題(還沒(méi)有想到解決辦法哦,不管了),先要解決的是如何抓取,分析和提交頁(yè)面的問(wèn)題。2009-07-07

