我有一个用C ++编写的遗留(但仍在内部维护)应用程序,它处理一些硬件,与数据库交互,通过串行线路或套接字接收命令......简而言之,它做了大量的工作。
此应用程序在Linux(ARM / Buildroot)下运行。
现在需要改进控制界面,添加RESTful API。
我正在探索通过Python扩展来实现这一目的的可能性。
注意我是一名C ++ / java程序员,我并不擅长Python,但我知道基础知识。
一般的想法是:
我研究了官方文档(主要涉及普通C)和几种替代方案,包括:
问题是:
我知道这个问题相当广泛,但我希望一旦第一条评论指向正确的方向,我就会缩小范围。
答案 0 :(得分:0)
你可以反过来这样做 - 将你的C ++代码嵌入Python程序中吗?这样就可以像你说的那样为移动现有功能Python做好准备。
Python使许多事情变得更容易(开发更快,更易于维护) - 与数据库,库(如果他们有Python包装器)的通信,进程/线程管理......在C ++中保留需要的东西在C ++中,就像处理硬件一样,C / C ++ - 只有库,CPU代码很重。
看看Cython是否在Python中嵌入C ++。 Cython基本上是一个从类似Python的语言到.c / .cpp文件的编译器,它只是“调用”Python C API,所以它可以从“普通”Python代码中使用,但也可以调用其他C / C ++代码。
替代方法:在C ++应用程序中实现API,并创建一个使用此API的单独Python应用程序。通过API我不是指REST API,而是更低级的东西 - RPC,ZeroMQ,普通套接字......