美文网首页
前端python解释器方案预研

前端python解释器方案预研

作者: golden_age | 来源:发表于2017-11-02 14:27 被阅读0次

最近因为需要找在可以 编写,检查,运行python的解决方案。
编辑monaco editor,需要进一步支持 api的自动完成;
检查: 语法检查,需要给monaco editor实现完整的语法检查功能 ;
运行(非actived缺少document的项目未列出):

python to javascript方案 python版本 库支持 大小性能 说明
Brython python 3完整支持 几乎完整,支持海龟画图(方便教学),几乎完整dom操作, 几乎完整浏览器API(web编程) brython.js(139KB)brython_stdlib.js(806KB)库可裁剪性能良好,(vs skulpt) New BSD (3 clause)官网示例丰富,教学资源可用强,性能好,浏览器支持良好
Transcrypt python 3 完整,支持海龟画图(方便教学) 直接翻译成javascript 实现良好,资源丰富,可惜只是个离线python → javascript翻译器
Skulpt python 2 完整,支持海龟画图(方便教学),无浏览器API(web编程),直接使用 极大(一个vm.js 13M)使用asm.js 理论性能最好 Apache 2 实验性python方案, 用到了asm.js,浏览器兼容性差
Pypy.js python 2 较少,支持海龟画图(方便教学),部分dom操作(web编程) skulpt.min.js 400KB MIT,社区资源一般

表格整理自
http://stromberg.dnsalias.org/~strombrg/pybrowser/python-browser.html 和官网document

结论
由于 micro python是python 3实现,因此 brython似乎是目前唯一可用,并良好的方案。

brython在工程里使用:

1 python解释器和标准库
<script src="brython.js">
<script src="brython_stdlib.js">

2 用户库

let mod = `var $module = (function($B) {
    var r = window.mscratch.vm.runtime;
    return {
        movesteps: function(arg) {
            r.getOpcodeFunction('motion_movesteps')(
                { STEPS: arg },
                { target: r.getEditingTarget() }
            );
        },
        turnLeft: function(arg) {
            r.getOpcodeFunction('motion_turnleft')(
                { DEGREES: arg },
                { target: r.getEditingTarget() }
            );
        },
        turnRight: function(arg) {
            r.getOpcodeFunction('motion_turnright')(
                { DEGREES: arg },
                { target: r.getEditingTarget() }
            );
        }
    };
})(__BRYTHON__)`
 
let loadScratchLib = () => {
    window.__BRYTHON__.VFS.mscratch = ['.js', mod];
};

3 用户脚本

<script type="text/python">
${user_code}
</script>

4 解释执行(eval)
global.brython(0);

相关文章

  • 前端python解释器方案预研

    最近因为需要找在可以 编写,检查,运行python的解决方案。编辑:monaco editor,需要进一步支持 a...

  • Python内存分析

    1. 内存分析 1.1 程序运行方式 Python执行一个程序:程序就从解释器申请内存 Python解释器:预加载...

  • 诊断小系统通信设计(初步)--Apple的学习笔记

    一,前言 bb-black socketCAN和ubuntu python GUI开发预研完成了,难度一般,方案可...

  • 02-Python解释器

    目标 解释器的作用 下载Python解释器 安装Python解释器 一. 解释器的作用 Python解释器作用:运...

  • 运行Python程序的三种方式

    1、python和python3解释器 1) python解释器 2) python3解释器 2、交互式运行 1)...

  • 初识python

    1.运行python程序之前,需要确保计算机上安装有python解释器,mac 和Linux一般会预安装pytho...

  • 2. 使用 Python 解释器

    2. 使用 Python 解释器 2.1. 调用 Python 解释器 Python 解释器通常被安装在目标机器的...

  • Python基础

    Python基础 Python是一门多范式编程语言。 Python的执行 解释器有C语言解释器,JAVA解释器,等...

  • [python_doc]python_3.7_chapter.2

    第二章 使用python解释器 2.1调用python解释器 python解释器一般被存放在 /usr/local...

  • Python执行方式

    执行 Python 程序的三种方式 1. 解释器 python / python3 Python 的解释器 使用 ...

网友评论

      本文标题:前端python解释器方案预研

      本文链接:https://www.haomeiwen.com/subject/nliopxtx.html