在JavaScript VM上运行Python字节码的工具。
项目描述
在浏览器中运行Python字节码的工具。
这是一段实验性代码。如果它坏了,你可以保留所有闪亮的部件。
它做什么
实现了一个Python 3.4字节码机器,可以处理函数调用和基本类定义。
将Base64编码的字节码解包成代码对象
实现了大多数常见的Python VM操作码
允许使用import dom访问DOM
它不做什么
在整数和浮点数学之间做出良好的区分
任何尝试处理Unicode。
在Python中按相同的方式引发错误(尤其是在数学操作期间发生的TypeError)
支持所有Python内置函数
支持完整的Python标准库
允许类继承
快速入门
在testserver目录中包含一个最小的Django项目,该项目将向您的浏览器提供Python字节码并执行它。要运行此项目,您需要运行Python 3.4。将Django 1.8安装到您的虚拟环境中;然后,在shell提示符下
$ cd testserver $ ./manage.py runserver
您可以在浏览器中加载http://127.0.0.1:8000。当页面加载时,您将看到一组按钮,对应于已嵌入页面的Python模块
PyStone性能基准测试。Python字节码嵌入到HTML文件中作为字符串。
- sample.py,一个简单的Python示例,演示了基本VM功能。
在服务器上动态生成并供客户端使用的PYC内容。此文件导入第二个文件other.py,以演示如何进行导入。
点击其中一个按钮,代码将运行;stdout/stderr已被重定向到网页,因此如果脚本有输出,您将看到它。
要开始修改,请更改testserver/sample.py,重新加载页面,然后点击按钮。
文档
可以在Read The Docs上找到Batavia的文档。
为什么叫“Batavia”?
1628年10月27日,《指挥官》弗朗西斯科·佩尔塞特接管了《Batavia》,与340名乘客和船员一起,从特克塞尔起航。他们的目的地是香料群岛——更具体地说,是荷兰东印度公司(现属于印度尼西亚)的爪哇岛。
《Batavia》是一艘爪哇船( rimshot!)。
有趣的是,在航行过程中,Ariaen Jacobsz和《underkoopman》Jeronimus Cornelisz煽动叛乱,因为他们不想去爪哇——他们想逃到别的地方开始新生活。由于叛乱,1629年6月4日,《Batavia》在珀斯西约450公里的Houtman Abrolhos的Morning Reef(摩晨礁)搁浅,这也是本项目构思的地方。
Batavia的完整故事为大多数西澳大利亚学校儿童所熟知,是一部关于阴谋、野蛮和谋杀的恐怖故事。它提醒我们,当你强迫人们去爪哇会发生什么::-)
在20世纪70年代,《Batavia》的残骸被打捞上来,现在陈列在西澳大利亚海事博物馆的沉船画廊中。
社区
《Batavia》是BeeWare套件的一部分。您可以通过以下方式与社区交流:
BeeWare用户邮件列表,有关如何使用BeeWare套件的疑问。
BeeWare开发者邮件列表,讨论BeeWare套件新特性的开发,以及套件新工具的想法。
贡献
如果您在使用《Batavia》时遇到问题,请在GitHub上记录下来。如果您想贡献代码,请Fork代码并提交拉取请求。