我想做的与大多数人想做的相反:我有一个用 Python 编写的库,我想让它可用于 C(可能还有其他语言)。
我知道对此的典型答案是使用 C 语言的 Python 库,即:
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
(来源:http ://docs.python.org/extending/embedding.html#very-high-level-embedding )
但是,这对我来说似乎不太理想:
- 很丑
- 只是为了C
相反,我想要的是一种将我的库绑定到很多语言的方法,包括 C。我不关心自动包装器生成:我的库非常简单,所以我可以编写胶水代码。
目前,我想出的唯一解决方案是使用类似于上面的代码将我的库绑定到 C。然后使用SWIG将 C 库绑定到其他语言。
有更好的吗?