当前位置: 首页 > 工具软件 > Skulpt > 使用案例 >

基于Skulpt在线Python解析器的简单使用

宿镜
2023-12-01

一、什么是Skulpt

Skulpt是一个运行在Web端的Python解析器,用于在Web端解析执行Python代码。

二、Skulpt的使用

1、下载地址

        https://github.com/skulpt/skulpt

2、编译

# 1、安装node.js

# 2、安装依赖项
    npm install

# 3、编译项目,在项目根目录会生成一个dist文件,里面包含 skulpt.min.js 和 skulpt-stdlib.js
    npm run dist

3、使用步骤

①  在html文件中引入生成的两个文件,注意两个文件的顺序不能调换!!!

<!-- Skulpt -->
<script src="skulpt/dist/skulpt.min.js" type="text/javascript"></script>
<script src="skulpt/dist/skulpt-stdlib.js" type="text/javascript"></script>

② 配置

Sk.configure({
    // 配置使用Python3
    __future__: Sk.python3,
    // 配置输出信息
    output: function (text) {
      console.log(text);
    },
    read: function (filename) {
      if (Sk.builtinFiles === undefined ||
        Sk.builtinFiles["files"][filename] === undefined) {
        throw "File not found: '" + filename + "'";
      }
      return Sk.builtinFiles["files"][filename];
    }
});

③ 运行程序

// python代码
var prog = `import time\ntime.sleep(1)\nprint('执行完毕')`; 
// 返回一个Promise进行异步调用,执行死循环程序的时候会有问题,停不下来,后续需要解决如何停止异步调用
var myPromise = Sk.misceval.asyncToPromise(function() {
  return Sk.importMainWithBody("<stdin>", false, prog, true);
});
myPromise.then(function(mod) {
  console.log('程序执行完成!');
}, function(err) { 
  console.log(err.toString());
});

以上就是Skulpt解析器的简单使用,这个库还支持扩展,如果需要扩展自己的module,可以修改项目的源码,然后再次编译,后续会写一篇关于Skulpt解析器的扩展,敬请期待吧!!!

 类似资料: