我有一个用python编写的简单函数,我想将其移植到javascript.
我已经将python 2.7编译成.so库,所以这不是问题.
我遇到的问题是,在用cython编译我的程序之后,函数名称变得全乱,这意味着我不知道如何在运行emcc时保留这些函数.
有没有人有任何使用emscripten编译python程序到js的经验?
任何信息,将不胜感激.
注意:我想保留python的确切功能,我不想要将python程序转换为javascript的东西.
解决方法:
另一个问题,接受了答案,抱怨同样的问题:Cython修改函数名称并使其难以从C:Embed python function in C++访问
接受的答案表明,Cython根本不适合这种事情,暗示你不能以这种方式做你想做的事情:
You’re not going to be able to get the interoperation you want that way. If you open and inspect hello.c you won’t find “static int say_hello” anywhere in there. Cython is designed for letting Python use C libraries, not letting C libraries use python.
未被接受的下一个答案表明,指定public不会破坏函数名称,尽管他也提到了链接问题.
# (in the generated C file hello.c)
__PYX_EXTERN_C DL_IMPORT(...) say_hello(...);
值得一试,但如果失败,请考虑评论中的其他选项.