everything is a message; message is everything

说明

这是之前的文章,更新以匹配 CodeLab Adapter 3.0

Python插件

CodeLab Adapter 3.0内置extension_python.py插件, 使用文档在此

同时插件市场中有功能更强大的python_exec插件。用户可以自行下载。

extension_python.py插件用以支持以下使用场景:

  1. 将 CodeLab Adapter 用作 Python 解释器,解释运行网页发送过来的 Python 代码
  2. 在 Scratch3.0 中构建 Python REPL
  3. 以简易的方式粘合 Python 和 Scratch3.0

将 CodeLab Adapter 用作 Python 解释器

第一个使用场景: 将 CodeLab Adapter 用作 Python 解释器,可以运行网页发送过来的 Python 代码

通过这个插件,允许在前端构建编辑器,而将 CodeLab Adapter 用作实际运行代码的后端,前端拿到代码执行结果,或者错误信息(stdout/stderr)。这和jupyter的架构很相似,我之前写过几篇分析 jupyter 架构的文章,jupyter 是 CodeLab Adapter 的灵感来源之一。

如此一来,为了教学 Python,就不必使用 javascript 实现的 Python 解释器了。不再需要烦心不同解释器之间的差异。学习者也不会为此困惑。更重要的是,得到了一个完全真实的 Python 解释器,它可以与网络交互,可以与文件系统交互!你在网页里写的 Python 代码可以做到任何事!喜欢requests库?尽情使用它吧,在下个发行版中,我们将在 CodeLab Adapter 内置常用的 Python 库!

在 Scratch 中构建 Python REPL

下边来做一件有趣的事,借助 extension_python.py, 搭配 CodeLab 的 scratch3.0 EIM extension,只需 9 块积木,就可以在在 scratch 3.0 中构建一个 python REPL!

我们创建了一个列表用来容纳输出,这是个非常理想的容器!

使用询问积木作为代码的输入框。

我们来实际测试一下

如果你想运行任何 Python 代码,请使用:python_exec

CodeLab Adapter 可以支持其他编程平台吗?

如果你希望将 CodeLab Adapter 用作你自己的编程平台(无论是 scratch3 还是 blockly)的 Python 解释器。参考CodeLab Adapter 可以支持其他编程平台吗?