2023 年,使用 Python 封装 C 语言库的最佳选择是什么?

2023-07-08 10:32:36 +08:00
 xiaochuaner

目标是一个算法加速库,使用 C + 汇编写成,,希望把接口经 Python 封装后打包成一个 Python 库,现在最适合的技术选型是什么呢?

  1. ctypes
  2. Cython
  3. pybind
  4. SWIG
  5. cffi

2686 次点击
所在节点    Python
13 条回复
t133
2023-07-08 10:44:57 +08:00
F2py
t133
2023-07-08 10:45:58 +08:00
@t133 不好意思你说的是 C 走错片场了
Rang666
2023-07-08 11:02:39 +08:00
可以看一下 numpy ,tf 这种咋弄的,不过我自己弄就直接 dll 之类的。cython 能和 cpp 连吗?我记得是要单独一套语言吧?
RuiCBai
2023-07-08 11:05:22 +08:00
pybind11 ,pytorch 官方推荐
hsfzxjy
2023-07-08 11:16:03 +08:00
pybind11 或者直接 C 手撸
dayeye2006199
2023-07-08 11:19:06 +08:00
pybind11 加一票
GeruzoniAnsasu
2023-07-08 11:21:59 +08:00
多前端(保持 C ABI ) => CFFI
只用作 py 的扩展库 => pybind
qq565425677
2023-07-08 11:55:42 +08:00
记得 numpy 好像用的是 cython ?
Lychee0
2023-07-08 13:04:01 +08:00
pybind11 加一票
tangtang369
2023-07-08 13:47:17 +08:00
pybind11 肯定是这个 但是越来越多后 感觉和 c 又没啥关联了 大家都知道 numpy 是 c 写的 但是 c 并没有个和 python 一样 numpy 直接就能用的
roundgis
2023-07-08 15:09:44 +08:00
@Rang666 numpy 現在應該還是用 cython
clino
2023-07-08 15:14:35 +08:00
我问了 chatgpt 和 claude 都回答说 cython ,原来 cython 还能包装 c 库,给了个例子一看确实比较简单
inframe
2023-07-08 16:12:43 +08:00
pybind11 ,或者 cython

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

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

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

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

© 2021 V2EX