亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python調用C++,通過Pybind11制作Python接口

2020-02-15 23:12:41
字體:
來源:轉載
供稿:網友

我是在ubuntu系統進行實驗的,所以和window可能會有區別。

python調用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,這些方法有繁有簡,而pybind11的優點是對C++ 11支持很好,API比較簡單,現在我們就簡單記下Pybind11的入門操作。

1. pybind11簡介與環境安裝

pybind11是一個輕量級的只包含頭文件的庫,它主要是用來在已有的 C++代碼的基礎上做擴展,它的語法和目標非常像Boost.Python,但Boost.Python為了兼容現有的基本所有的C++編譯器而變得非常復雜和龐大,而因此付出的代價是很多晦澀的模板技巧以及很多不必要的對舊版編譯器的支持。Pybind11摒棄了這些支持,它只支持python2.7以上以及C++ 11以上的編譯器,使得它比Boost.Python更加簡潔高效。

為了使用pybind11,我們需要支持C++ 11標準的編譯器(GCC 4.8以上,VS 2015 Update 3以上)以及python 2.7以上的版本,還需要下載CMake,有了這些以后,

cmake教程可以參考://www.jb51.net/article/148903.htm

    首先,我們從 pybind11 github網址:https://github.com/pybind/pybind11 上下載源碼。 cmake工程之前,要先安裝pytest pip install pytest,否則會出錯 用CMake編譯并運行測試用例:
進入pybind11的目錄,cd testscmake ..cmake --build . --config Release --target check

如果所有測試用例都通過了,說明安裝成功了。

2. python調用C++

下載編譯好pybind11之后,我們就可以開始對著官方的pybind11 Tutorial進行學習了,詳細的入門教程及語法請參考官方文檔,這里,我們簡單演示下如何編寫供python調用的C++模塊.
首先,我們編寫一個C++源文件,命名為example.cpp

#include <pybind11/pybind11.h>namespace py = pybind11;int add(int i, int j){ return i + j;}PYBIND11_MODULE(example, m){ // optional module docstring m.doc() = "pybind11 example plugin"; // expose add function, and add keyword arguments and default arguments m.def("add", &add, "A function which adds two numbers", py::arg("i")=1, py::arg("j")=2); // exporting variables m.attr("the_answer") = 42; py::object world = py::cast("World"); m.attr("what") = world;}

2.1 使用window編譯

我沒有實驗,所以可以參考別的教程

2.2 CMake的編譯方法

當然,我們也可以使用CMake進行編譯。首先寫一個CMakeLists.txt

cmake_minimum_required(VERSION 2.8.12)project(example) add_subdirectory(pybind11)pybind11_add_module(example example.cpp)

這里要求example.cpp放在和pybind11同一級的目錄下,因為我們在CMakeLists.txt中調用了同目錄pybind11和同目錄的example.cpp文件。在當前目錄下執行

cmake .make

會生成example.cpython-36m-x86_64-linux-gnu.so文件。這個文件就是python可以調用的文件。還是在相同目錄下運行python,進入python命令行

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一区二区三区免费视| 中文字幕精品—区二区| 福利一区视频在线观看| 欧美极品美女电影一区| 欧美日韩国产黄| 亚洲国产精品一区二区三区| 在线观看91久久久久久| 欧美不卡视频一区发布| 91网在线免费观看| 日韩黄色高清视频| 国内精品400部情侣激情| 欧美成人精品一区二区三区| 国产精品国产三级国产aⅴ浪潮| 91网在线免费观看| 日韩av在线免费看| 日韩欧美综合在线视频| 日韩在线精品视频| 精品久久久久久中文字幕| 国产精品久久久久久久久久ktv| 在线精品91av| 热re91久久精品国99热蜜臀| 欧美丰满少妇xxxxx| 欧美一级淫片aaaaaaa视频| 成人网页在线免费观看| 欧美日韩美女在线观看| 日韩美女中文字幕| 亚洲精品色婷婷福利天堂| 久久不射热爱视频精品| 日韩美女毛茸茸| 亚洲欧美国产精品久久久久久久| 久久久久久免费精品| 精品久久久久久久中文字幕| 日韩欧美精品网址| 亚洲肉体裸体xxxx137| 日韩人体视频一二区| 亚洲国产精品嫩草影院久久| 国产日产久久高清欧美一区| 国产午夜精品久久久| 热re99久久精品国产66热| 亚洲国产天堂网精品网站| 国产噜噜噜噜久久久久久久久| 久久精品中文字幕| 国产精品一区二区久久久久| 亚洲欧美精品suv| 91精品国产91久久久久久最新| 欧美性猛xxx| 久久久久久综合网天天| 一本色道久久88综合亚洲精品ⅰ| 色偷偷亚洲男人天堂| 久久久久久噜噜噜久久久精品| 欧美日韩电影在线观看| 国产精品永久免费视频| 欧美激情aaaa| 狠狠色狠狠色综合日日小说| 亚洲大胆人体视频| 狠狠做深爱婷婷久久综合一区| 国产91成人video| 亚洲自拍小视频免费观看| 亚洲精品久久在线| 国内久久久精品| 国产精品久久99久久| 国外色69视频在线观看| 国产一区在线播放| 蜜臀久久99精品久久久久久宅男| 激情久久av一区av二区av三区| 91av视频在线观看| 久久久久九九九九| 亚洲第一网中文字幕| 日韩av在线网| 中文字幕av一区二区三区谷原希美| 亚洲韩国欧洲国产日产av| 91地址最新发布| 国产精品三级网站| 国产欧美日韩91| 国产成人福利夜色影视| 国产精品麻豆va在线播放| 亚洲欧美精品一区二区| 久久人人爽人人爽人人片av高清| 91免费高清视频| 亚洲欧美日韩在线一区| 日本亚洲欧洲色| 久久中文字幕视频| 欧美影院在线播放| 亚洲福利视频网站| 国产综合视频在线观看| 国产精品视频自在线| 久久九九热免费视频| 日韩电影大片中文字幕| 日韩av免费在线播放| 日韩欧美在线第一页| 国产一区二区在线播放| 国模精品视频一区二区三区| 欧美一级淫片aaaaaaa视频| 97精品视频在线| 成人中文字幕在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美视频在线观看免费网址| 91热精品视频| 狠狠干狠狠久久| 成人在线精品视频| 日韩精品中文在线观看| 亚洲视频欧美视频| 国产精品入口尤物| 欧美国产一区二区三区| 日本精品免费一区二区三区| 欧美情侣性视频| 欧美视频免费在线| 亚洲国产欧美精品| 中文字幕亚洲无线码在线一区| 一区二区三区天堂av| 日韩视频免费在线| 日韩精品免费看| 亚洲夜晚福利在线观看| 亚洲xxxx18| 91精品久久久久久久久中文字幕| 国产精品视频专区| 国产aⅴ夜夜欢一区二区三区| 成人激情免费在线| 亚洲欧美国产日韩中文字幕| 欧美激情国产日韩精品一区18| 亚洲最大中文字幕| 精品久久香蕉国产线看观看亚洲| 亚洲欧美在线免费观看| 亚洲乱码一区av黑人高潮| 欧美中文在线免费| 日本老师69xxx| 91av视频在线观看| 国产99视频精品免视看7| www.久久撸.com| 日韩av一区在线| 中文字幕亚洲综合久久| 国产精品自产拍在线观看中文| 欧美日韩中文字幕| 亚洲一区二区久久久| 欧洲成人在线视频| 国产丝袜精品视频| 欧美午夜性色大片在线观看| 亚洲无av在线中文字幕| 精品欧美aⅴ在线网站| 国产欧美在线观看| 国产91露脸中文字幕在线| 日韩中文字幕欧美| 久久精品电影网| 欧美激情视频一区二区| 欧美国产中文字幕| 中文字幕日韩精品在线观看| 亚洲成av人影院在线观看| 欧美日韩爱爱视频| 亚洲第一福利在线观看| 久久久久久噜噜噜久久久精品| 国产精品久久77777| 精品久久久av| 97婷婷涩涩精品一区| 亚洲一区二区三| 日韩电影中文字幕在线观看| 亚洲天堂男人天堂女人天堂| 亚洲激情自拍图| 日韩亚洲精品电影| 51色欧美片视频在线观看| 国产亚洲美女精品久久久| 国产精品美女久久| 欧美激情女人20p| 欧美wwwxxxx| 色偷偷9999www|