
git clone https://github.com/ethanchewy/PythonBuddy.git
cd PythonBuddy
python3 -m venv venv
source venv/bin/activate
python --version
如果您不使用Python Python 3.7.6,那么Pythonbuddy依赖的一些Python库可能不起作用。请参阅此文档,以通过此stackoverflow文章通过Virtualenv弄清楚如何创建特定版本的Python。
pip install -r requirements.txt
PythonBuddy/PythonBuddy/ 。 cd PythonBuddy
export FLASK_APP=app.py
flask run
打开您的浏览器到Localhost:5000。瞧! ?



请查看pythonbuddysandboxed,以获取完整工作的Web实现,该实现使用了名为Pythonbuddysandbox的pythonbuddy版本。
这是建立在Christophetd的Docker-Python-Sandbox的基础上的,并且只是对其进行了修改,以便它在后台运行并处理客户端的Pylint消息。
要查看他如何在网络侧实现它,请查看https://github.com/christophetd/code-execution-api-demo
这仍处于Alpha阶段,因此可能有一些错误。如果要实施此功能,请检查上面的4个链接,因为文档是WIP。
要运行测试,请在根目录中运行此操作:
pytest
对于覆盖范围,在根目录中运行以下命令:
pytest --cov-report html --cov=PythonBuddy tests/
你为什么做这个?
2014年,我是MIT EDX 6.00.1X课程的TA社区,我帮助教授了1000多名学生。我开始在Eni Mustafaraj教授下研究的那一年。她从该课程中获得了数据集,我们在头两周内看到了学生的损耗率很高。挖掘了课程和数据后,我意识到,由于设置Python环境的困难以及运行代码时无法解决的复杂错误消息,学生离开了(例如:有些学生有路径问题)。
因此,我创建了Pythonbuddy来解决此问题,以便学生不必经历设置Python环境并遇到看似“随机”错误的挫败感。 Pythonbuddy允许用户在实时语法检查和突出显示的支持下直接跳入Python编程。此外,教授和教师可以轻松地设置服务器,并允许学生通过在线使用Pythonbuddy快速测试他们的代码。
有没有人创建过这样的东西?
从来没有在线有实时语法检查器。类似的不是“直播”的项目是http://pep8online.com/和http://antares.sip.ucm.es/cesar/pylint/
我该如何贡献?
你可以 ?星级我的存储库,分叉我的回购,提交拉动请求和/或开放问题!
将其嵌入MOOC的代码在哪里?
我目前正在此处(专门针对EDX):https://github.com/ethanchewy/pybuddy2.0。如果您想将该项目直接嵌入您的网站,则使用一个iframe:
<iframe src="https://pythonbuddy.com"></iframe>
我希望代码真正以某种方式编译和运行?
要安全地运行Pythonbuddy,您可以通过Docker and Node.js查看我对Pythonbuddy的实现:https://github.com/ethanchewy/pythonbuddy#secure-secure-secure-sandboxed-version-version-version-version-using-docker。基本上,它将每个用户会话停靠(类似于为每个用户创建虚拟机),并在使用过多的内存或运行恶意代码时将其销毁。
如果您想在我受限制的python分支上以受限的方式实际执行Python:https://github.com/ethanchewy/pythonbuddy/tree/tree/restryctionpypython。
如何运行自己的服务器?常规:https://github.com/ethanchewy/onlinepythonlintersyntaxchecker/wiki
沙盒:https://github.com/ethanchewy/pythonbuddy/wiki/running-sandboxed-pythonbuddy
在2020年玻璃杯,Python Weekly,CSS作者和Talk Python Podcast上发表
这是在韦尔斯利学院教授Eni Mustafaraj的指导下,Ethan Chiu作为研究项目。
截至2020年10月,Pythonbuddy.com将不再是该开源项目的演示服务器,因为每月为80,000多人托管它的成本增加。相反,此URL将重定向回到此GitHub回购。