求推荐 C++中调用 Python 的方案

2018-11-12 23:58:22 +08:00
 SamsonWang

我需要在 c++中调用 python,目前( 2018 年 11 月)比较主流的方案有哪些呢?请结合自己的实践给出推荐理由。

我目前查资料找到的可能备选方案:

  1. boost.python
  2. pybind11

先谢谢大家~

3241 次点击
所在节点    C
12 条回复
scriptB0y
2018-11-13 01:09:58 +08:00
能说说你的需求吗? 我觉得一般在 C++ 中需要脚本语言的话,lua 是比较合适的。
anonymous256
2018-11-13 01:13:46 +08:00
https://blog.csdn.net/VonSdite/article/details/81295056

C++程序中调用命令行的思路,交给让操作系统执行,应该是可行的。
thedrwu
2018-11-13 01:14:44 +08:00
用了一大圈,还是 swig 最好用。
heliumhgy
2018-11-13 01:37:48 +08:00
裸写 C 扩展。你提到的那俩货性能开销蛮大的。
htfy96
2018-11-13 02:14:01 +08:00
FFI 一直都是大坑。如果没有超高性能要求的话可以包装成 RPC,通过 domain socket/TCP 通信,优点是解耦比较彻底
JerryV2
2018-11-13 08:19:58 +08:00
@heliumhgy
对,使用调用 C API,自己简单包装一下,并不复杂
Wicked
2018-11-13 08:22:01 +08:00
搜索“ python c 扩展”,很简单的
dychenyi
2018-11-13 09:11:49 +08:00
swig, cython
initialdp
2018-11-13 09:25:53 +08:00
ctypes 挺好用
wutiantong
2018-11-13 11:37:54 +08:00
@heliumhgy 我最近用了一点儿 pybind11,不太明白你说的“性能开销蛮大的”具体是指什么?
chenstack
2018-11-13 16:43:28 +08:00
我推荐用 pybind11,使用上对 C++的类友好,用着挺舒服的
Arnie97
2018-11-14 01:16:56 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/507201

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX