Python 里嵌 C/C++的事,其实不少人早就干了,python-weave就是个挺实用的老工具。它的玩法是:你在 Python 代码里直接塞 C++代码,它能帮你编译成机器能跑的二进制,响应也快,尤其在数值计算场景里,效率确实拉满。
压缩包weave-0.16.0
里头包含完整源代码,解压后用setup.py
一键安装就行。嗯,别忘了提前装好 Python 和pip
。Python 2 的朋友还要装下setuptools
,Python 3 一般自带。
比如你写了个square_root
的 C++函数,用inline
就能直接在 Python 里调,像下面这样:
from weave import inline
cpp_code = """
double result = square_root(input);
"""
inputs = {'input': 16.0}
outputs = {'result': 'double'}
inline(cpp_code, inputs, outputs)
print('The square root is:', outputs['result'])
你看,就一段 Python,背后却跑着 C++,挺带感的。不过要提醒下,Weave 现在不再维护,所以新项目更建议你上手NumPy或者SciPy,社区活跃,支持也多。
但如果你要接手老项目,或者想搞清楚底层怎么加速,那它还是个不错的切入口。,玩这个别怕折腾,试几次自然就熟了。