将Python持久层嵌入C++应用程序-好主意吗?

6 投票
1 回答
633 浏览
提问于 2025-04-15 21:38

假设我准备写一个应用程序,这个程序有一个简单的界面(GUI),一个非常复杂的计算部分(负责进行大量计算和其他耗时的任务),还有一个比较简单的数据存储部分。我打算用C++来构建界面和计算部分(界面部分使用Qt框架)。

那么,使用Python来构建数据存储部分,利用sqlalchemy,并把它嵌入到C++应用程序中,让不同的部分通过轻量级的数据传输对象(这些对象用C++写,但Python也能访问)进行交互,这个想法会不会太疯狂呢?

(我考虑的另一个选择是从一开始就用Python写这个应用,使用PyQt这个工具,然后在需要进行计算的时候调用C++的部分)

谢谢,
Rickard

1 个回答

10

我会选择“替代”方法:

尽量多用Python来写代码(你可以使用PyQt或PySide这些图形界面库),然后只有在性能非常关键的情况下,才用C++来写那些计算量大的部分(可以看看Boost.Python)。

用Python开发通常会更快、更简单,而且出错的机会也少(除非你是个非常有经验的C++开发者;即使这样,Python还是更容易)。通过Boost.Python把C++代码暴露出来,应该比反过来要简单。

撰写回答