如何在网站上嵌入Python解释器

two*_*ine 11 python interpreter web-applications

我正在尝试建立一个类似于Codecademy的教育编码网站,但我坦率地说应该采取什么步骤.在webapp中包括一个简单的python解释器,我能指出正确的方向吗?

jdi*_*jdi 10

一种选择可能是使用PyPy来创建沙盒python.它会限制某人可以做的外部操作.

完成设置之后,您的网站将获取代码源,通过ajax将其发送到您的Web服务器,服务器将在沙盒python实例的子进程中运行代码.如果耗时超过5秒,您也可以终止该过程.然后返回输出作为对客户端的响应.

有关PyPy沙箱的帮助,请参阅以下链接:
http://doc.pypy.org/en/latest/sandbox.html
http://readevalprint.com/blog/python-sandbox-with-pypy.html

创建一个完全交互式的REPL将更加复杂.您需要为服务器上的每个客户端保留一个解释器.然后接受输入的ajax"行"并通过与正在运行的进程通信来运行它们,并返回输出.

总的来说,不是微不足道的.你需要一些强大的开发技能来舒服地做到这一点.如果你刚刚学习,你可能会发现这项任务有点令人生畏.


Kat*_*iel 5

这里还有比你想象的还要多的事情.

主要问题是你不能让人们在你的网络服务器上运行任意Python代码.例如,如果他们这样做会发生什么

import os
os.system("rm -rf *.*")
Run Code Online (Sandbox Code Playgroud)

很明显,你必须安全地运行这个Python代码.但是,那么你有,因为它是如何动态保护的Python,这基本上是不可能的问题.因此,您可能不得不在虚拟机中运行Python shell,这会带来令人头痛的问题.


您是否看过例如http://code.google.com/p/google-app-engine-samples/downloads/detail?name=shell_20091112.tar.gz&can=2&q=


小智 5

最近的一种选择是使用repl

这个选项很棒,因为编译器是使用 JavaScript 制作的,所以编译执行是在用户端进行的,这意味着服务器没有漏洞。

他们有以下编译器:Python3、Python、Javascript、Java、Ruby、PHP ...

我强烈建议您在http://repl.it上查看他们的网站