是否可以集成Python和JavaScript?例如,假设您希望能够在JavaScript中定义类并从Python使用它们(反之亦然)。如果是这样,最好的方法是什么?我不仅对这是否可行还感兴趣,而且是否有人在“严肃的”项目或产品中做到了。
我想举个例子,可以使用Jython和Rhino,但我很好奇是否有人真正做到了这一点,以及是否有针对其他平台的解决方案(尤其是CPython)。
Answers:
这是关于SeaMonkey Java解释器的Python包装器... http://pypi.python.org/pypi/python-spidermonkey
pyjs
不再维护(上一次提交是在2015年9月22日)。
这个问题并不完全年轻,但是有一些替代方案:
有两个项目允许python对象和javascript对象之间的“明显”转换,从int或float到Number以及从str或unicode到String的“明显”转换:PyV8,并且正如一位作者已经提到的那样:python-spidermonkey。
pyv8实际上有两种实现-最初的实验是由sebastien louisel进行的,第二种(正在积极开发中)是由flier liu进行的。
我对这些项目的兴趣一直是将它们与睡衣联系在一起,一个Python到JavaScript编译器,创建一个JIT的Python的加速器。
所以那里有很多-这取决于您想做什么。
如果您只想在javascript和python之间共享复杂的数据类型,请查看jsonpickle。它包装了标准的Python JSON库,但是在序列化和反序列化Python类和其他数据类型方面有一些技巧。
不少Google App Engine项目都使用了该库。 Joose和FirePython两个一体化jsonpickle。
有一个基于JavaScriptCore的桥(来自WebKit),但还很不完整:http : //code.google.com/p/pyjscore/
您可能还想签出PyPy项目-他们有一个Python编译器,包括Python到Javascript,C和llvm。这使您可以用Python编写代码,然后根据需要将其编译为Javascript。
另外,请查看内容丰富的博客:
不幸的是,您不能以这种方式将Javascript转换为Python。总体看来,它确实运行良好,他们曾经在线上有一个Bub'n'Bros游戏的Javascript版本(由编译的Python制成)(尽管服务器已经关闭了一段时间)。
一段时间以前,我在与Pyjon玩耍,似乎可以直接用Python编写Java评估程序并运行简单的程序...尽管它不是JS的完整实现,而只是一个实验。在这里获取:
上面提到的许多项目已经死亡或垂死,缺乏作者的积极性和兴趣。有趣的是该领域的发展。
作为记录,在基于插件的实现时代,KDE营地试图通过插件和非语言特定的方式解决此问题,并创建了Kross https://en.wikipedia.org/wiki/Kross_(software) -在我理解它即使在社区内部也从未成功。
在这个“鸡与蛋”问题期间,基于javascript的实现无疑是必经之路。也许将来我们会在浏览器中看到纯净的,完整的Python支持。