python调用C++程序,C++程序调用python程序:pybind11简单使用
2022/7/24 14:30:48
本文主要是介绍python调用C++程序,C++程序调用python程序:pybind11简单使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本博客只是对链接进行补充说明。
通过git clone https://github.com/pybind/pybind11.git 下载源码,可以发现源码中并没有cpp文件,只有.h文件,也就是说pybind11将实现的代码都放进了.h文件中了。所以pybind11其实是不用进行编译安装,就可以使用的,直接通过include相关头文件就可以。
pyadd.cpp:
#include <pybind11/pybind11.h> /***********************调用普通函数***********************/ template <typename T> T add(T a, T b) { return a + b; } PYBIND11_MODULE(pyadd, m) { m.doc() = "test for add()"; m.def("add", &add<int>, "add two number."); m.def("add", &add<double>, "add two number."); m.def("add", &add<long long>, "add two number."); m.attr("__version__") = "dev"; }
将pyadd编译成动态库:
g++ test.cpp -I ./ -I /home/ubuntu1/anaconda3/envs/test/include/python3.9 -L /home/ubuntu1/anaconda3/envs/test/lib -l python3.9 -fPIC -shared -o pyadd.so
第一个-I用于指明头文件pybind11.h位置,第二个-I指明Python.h所在位置。
这里动态库的名字为pyadd.so,那么在python程序中使用“import pyadd”进行导入,如:
/** * >>> import pyadd * >>> pyadd.__version__ * 'dev' * >>> pyadd.add(1.1, 2.2) * 3.3000000000000003 */
这篇关于python调用C++程序,C++程序调用python程序:pybind11简单使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战
- 2024-09-18Python量化交易:入门指南与实践
- 2024-09-18Python量化交易:入门指南与实战技巧
- 2024-09-14Python人工智能项目实战:从零开始的实践指南
- 2024-09-14探索Python人工智能资料:初学者的指南
- 2024-09-14Python人工智能资料:初学者的全面指南
- 2024-09-13Matplotlib入门:轻松绘制Python数据可视化图表
- 2024-09-13Python人工智能:初学者的入门指南
- 2024-09-13Python人工智能:轻松入门与实践