如何将用python编写的函数编译成JavaScript(emscripten)?

时间:2013-11-05 11:53:04

标签: javascript python cython emscripten

我有一个用python编写的简单函数,我想将其移植到javascript。

我已经将python 2.7编译成了一个.so库,所以这不是问题。

我遇到的问题是,在用cython编译我的程序之后,函数名称变得全乱,这意味着我不知道如何在运行emcc时保留这些函数。

有没有人有使用emscripten将python程序编译为js的经验?

任何信息都将受到赞赏。

注意:我想保留python的确切功能,我不想要将python程序翻译成javascript的东西。

1 个答案:

答案 0 :(得分:5)

另一个问题,接受了答案,抱怨同样的问题:Cython修改函数名称并使其难以从C ++访问:Embed python function in C++

接受的答案表明Cython根本不适合这种事情,暗示你不能以这种方式做你想做的事情:

  

您无法以这种方式获得所需的互操作性。如果打开并检查hello.c,那么在那里的任何地方都找不到“static int say_hello”。 Cython旨在让Python使用C库,而不是让C库使用python。

未接受的下一个答案表明,指定public不会破坏函数名称,尽管他也提到了链接问题。

# (in the generated C file hello.c)
__PYX_EXTERN_C DL_IMPORT(...) say_hello(...);

值得一试,但如果失败,请考虑评论中的其他选项。