有几个函数是用C++写的。为了在Python中调用它们,可以通过pybind11将它们封装成一个Python模块。在编写Python程序时,只需要导入该模块即可。使用这些功能。一、实现步骤用C++函数实现函数功能;编写头文件,在头文件中包含函数声明;编写pybind11封装函数;用Python编写安装脚本;生成动态链接库pyd文件;测试函数功能。二、代码实现1、使用C++函数实现函数功能//文件名:add.cppextern"C"doubleadd(doublein1,doublein2){returnin1+in2;}//文件名:sub.cppextern"C"doublesub(doublein1,doublein2){returnin1-in2;}//文件名:mul.cppextern"C"doublemul(doublein1,doublein2){returnin1*in2;}//文件名:div.cppextern"C"doublediv1(doublein1,doublein2){returnin1/in2;}2.编写头文件,在头文件中包含函数的声明//filename:functions.h#ifndefFUNCTIONS_H#defineFUNCTIONS_H#includeusingnamespacestd;外部“C”双加(双,双);外部“C”双子(双,双);外部“C”双乘(双,双);extern"C"doublediv1(double,double);#endif3。写pybind11包装函数//文件名:functions_wrapper.cpp#include#include"functions.h"namespacepy=pybind11;PYBIND11_MODULE(functions,m){m.doc()="简单类";m.def("添加",&添加);m.def("sub",&sub);m.def("mul",&mul);m.def("div",&div1);}4。用Python编写设置脚本#Filename:setup.pyfromsetuptoolsimportsetup,Extensionfunctions_module=Extension(name='functions',sources=['add.cpp','sub.cpp','mul.cpp','div.cpp','functions_wrapper.cpp'],include_dirs=[r'D:\software\pybind11-master\include',r'D:\software\Anaconda\include'])setup(ext_modules=[functions_module])5.生成动态链接库pyd文件在命令行执行pythonsetup.pybuild_ext--inplace,在当前路径生成pyd动态库6.测试函数function#filename:test.pyimportfunctionsprint(functions.add(0.9,3))打印(functions.sub(0.9,3))打印(functions.mul(0.9,3))打印(functions.div(0.9,3))输出:3.9-2.12.70.3