pybind11在Windows下的使用教程
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


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

2.3 鏈接 python的lib

2.4 linker里添加python的lib

3. 代碼示例:
有兩種定義函數(shù)的方法, 一種是直接定義, 另一種比較簡單就是 def("函數(shù)名",&函數(shù)的引用,"說明")
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文件

在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利用函數(shù)式編程實現(xiàn)優(yōu)化代碼
函數(shù)式編程(Functional Programming)是一種編程范式,它將計算視為函數(shù)的求值,并且避免使用可變狀態(tài)和循環(huán),在Python中還可以利用它的簡潔和高效來解決實際問題,下面我們就來學習一下它的具體用法吧2023-11-11
詳解利用python+opencv識別圖片中的圓形(霍夫變換)
這篇文章主要介紹了詳解利用python+opencv識別圖片中的圓形(霍夫變換),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
python GUI庫圖形界面開發(fā)之PyQt5切換按鈕控件QPushButton詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5切換按鈕控件QPushButton詳細使用方法與實例,需要的朋友可以參考下2020-02-02
python統(tǒng)計一個文本中重復行數(shù)的方法
這篇文章主要介紹了python統(tǒng)計一個文本中重復行數(shù)的方法,涉及針對Python中dict對象的使用及相關本文的操作,具有一定的借鑒價值,需要的朋友可以參考下2014-11-11
基于Python實現(xiàn)大文件分割和命名腳本過程解析
這篇文章主要介紹了基于Python實現(xiàn)大文件分割和命名腳本過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09

