Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将用python编写的函数编译为JavaScript(emscripten)?_Javascript_Python_Cython_Emscripten - Fatal编程技术网

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

如何将用python编写的函数编译为JavaScript(emscripten)?,javascript,python,cython,emscripten,Javascript,Python,Cython,Emscripten,我有一个用python编写的简单函数,我想将其移植到javascript 我已经将Python2.7编译成了一个.so库,所以这不是问题所在 我遇到的问题是,在我用cython编译我的程序后,函数名都被打乱了,这意味着我不知道在运行emcc时如何保存函数 有没有人有过使用emscripten将python程序编译成js的经验 如有任何信息,将不胜感激 注意:我想要保留python的确切功能,我不想要将python程序翻译成javascript的东西。另一个问题,有一个公认的答案,抱怨同样的问题:

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

我已经将Python2.7编译成了一个.so库,所以这不是问题所在

我遇到的问题是,在我用cython编译我的程序后,函数名都被打乱了,这意味着我不知道在运行emcc时如何保存函数

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

如有任何信息,将不胜感激


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

另一个问题,有一个公认的答案,抱怨同样的问题:Cython弄乱了函数名,使从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(...);

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

将Python转换成JavaScript的方法更直接,这可能更适合您的情况。Python部分此处:和此处:中列出的项目可能都是您可行的选项。您还可能会发现此项目很有趣:。它是一个javascript多语言脚本引擎,可以在浏览器中运行。支持Python(我认为它是使用emscripten移植到Python的)。因此,不用将Python编译成js,只需将Python发送到浏览器即可。鉴于我在下面找到并发布的问题,我认为@slebetman是正确的,如果您想保留原始Python代码,那么使用jsrepl对其emscripten编译的CPython解释器运行任意Python代码将是最好的选择。您也可以使用Skulpt:Right在JavaScript中运行Python脚本,但我的函数名在经过cython之后会被置乱,现在“my_func”被称为“my_func”。