使用 Pyston 到 LLVM,然后使用 Emiscripten 到 Javascript

Using Pyston to LLVM and then Emiscripten to Javascript

我是 Pyston 的初学者。我什至不知道我在说什么是可能的或不可能的。如果有人知道我们可以使用 Pyston(通过 Dropbox)将 python 代码转换为 LLVM 位码,然后使用 Emiscripten 将该位码转换为 Javascript,请赐教。另外,如果我想创建 JQuery 文件。怎么可能在 Python 代码中使用 $。

听起来好像您有想要在网页中使用的现有 Python 代码。通过大量工作,可以使用您建议的工具链 (Pyston/Emscripten),但还有更简单的方法。

这篇 Infoworld 文章“4 tools to convert Python to JavaScript”有一些有用的链接。

Transcrypt 看起来特别有前途。甚至还有一个使用 Transcrypt with jQuery.

的实例

正如 Alan Green 指出的那样,您可以使用 Transcrypt 让 Python 3.5 代码与 JQuery 协作。美元符号的问题通过使用别名解决:

__pragma__ ('alias', 'S', '$')

def start ():
    def changeColors ():
        for div in S__divs:
            S (div) .css ({
                'color': 'rgb({},{},{})'.format (* [int (256 * Math.random ()) for i in range (3)]),
            })

    S__divs = S ('div')
    changeColors ()
    window.setInterval (changeColors, 500)

Transcrypt不是解释成JS而是提前编译的,所以运行起来和JS一样快。

HTML是:

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
        <script src="__javascript__/jquery_demo.js"; charset="UTF-8"></script>
        <script>$ (document) .ready (jquery_demo.start)</script>
    </head>
    <body bgcolor="black">
        <font face="arial" size = "8">
        <div>The</div>
        <div>quick</div>
        <div>brown</div>
        <div>fox</div>
        <div>jumps</div>
        <div>over</div>
        <div>the</div>
        <div>lazy</div>
        <div>dog</div>
    </body>
</html>

免责声明:我是Transcrypt项目的发起人。