pybind11
是乙個將c++介面轉接給python的庫,它支援c++ 11標準的編譯器。
這裡我做了乙個簡單的實驗,主要是驗證將eigen::matrixxf
型別對映到numpy::ndarray
型別,這樣就可以在python
愉快地呼叫c++
函式了。
完整**見:
首先,python
指令碼**:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
path_current = os.path.dirname(os.path.abspath(__file__)
)path_build = os.path.join(path_current,
"../build"
)import numpy as np
from pybind_test import add_matrix
if __name__ ==
"__main__"
: a = np.array([[
1,1]
,[2,
2]])
b = np.array([[
2,2]
,[1,
1]])
print
(add_matrix(a,b)
)
#include
"test.h"
using mattype = eigen::matrix2f;
mattype add_matrix
(mattype a,mattype b)
c++
轉接指令碼bind.cpp
:
#include
#include
#include
"test.h"
pybind11_module
(pybind_test,m)
cmakelists.txt
:
cmake_minimum_required
(version 2.8
)project
(pybind11_test)
set(cmake_cxx_flags "-std=c++11 -wall -o2 $"
)set
(pybind11_cpp_standard -std=c++11)
find_package
(pythoninterp required)
include_directories
($/include/
)add_subdirectory
($/pybind11/
)set
(sourcefiles src/test.cpp )
pybind11_add_module
(pybind_test module bind.cpp $
)
python 呼叫c 庫介面出錯
首先,python使用c 庫傳資料的部分方法在我之前的小心得裡有 python呼叫c 的庫傳遞二級指標,希望有幫到大家。今天說一下c 的介面裡使用智慧型指標shared ptr接收資料的問題,介面都是使用的指標傳遞資料,原本的想法很簡單,直接使用傳入的指標構建shared ptr shared pt...
C 呼叫C 介面
1 system.dllnotfoundexception 型別的未經處理的異常在 test.exe 中發生 其他資訊 無法載入 dll dll ar algorithm.dll 找不到指定的模組。異常來自 hresult 0x8007007e 該問題的原因是程式無法找到ar algorithm.d...
SpringBoot呼叫python介面的實現步驟
目錄 springboot作為後端開發框架,有強大且方便的處理能力。但是作為乙個結合資料分析 前台展示的 來說,後端的資料處理模組使用python指令碼要更加方便。axefjqghe本文主要介紹如何利用springboot框架呼叫python指令碼 其實一句話來說就是利用springboot j a...