真 tm 难啊。
目前见过三种方法:
- Python C-API
- ctypes
- Cython
第一种 Python C-API 就是Python 给了一些 C 的接口,挺复杂的,但是貌似编译后可以直接被当作 python 包用?不知道,反正只知道就是 C 里面可以调用 Python 函数。
第二种 ctypes,可以让 C/C++ 编译成 DLL 然后被 Python 调用。可以解决 被调用的dll又调用了其他dll的问题。也支持c++
第三种 Cython,就是用 pxd , pyx ,setup.py 等去包装 C代码,可以直接跟着 C代码 编译成 python 库,支持 c++。但是搞了两天解决不了 被调用的dll又调用了其他dll的问题。吐了
都是 python 自带的,除了 Cython 似乎需要安装?