
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, некоторые библиотеки Python, на которые полагается Pythonbuddy , могут не работать . Пожалуйста, обратитесь к этой документации, чтобы выяснить, как создать конкретную версию Python через VirtualEnv через этот пост Stackoverflow.
pip install -r requirements.txt
PythonBuddy/PythonBuddy/ . cd PythonBuddy
export FLASK_APP=app.py
flask run
Откройте свой браузер для Localhost: 5000. Вуаля! ?



Пожалуйста, ознакомьтесь с PythonBuddysAndboxed для полностью рабочей веб -реализации, которая использует докеризованную версию PythonBuddy под названием PythonBuddysAndbox.
Это создается от Docker-Python-Sandbox от Кристофетда и просто изменяет его так, чтобы он запускал Pylint в заднем плане и обрабатывает сообщения Pylint на стороне клиента.
Чтобы увидеть, как он реализует это на веб-стороне, пожалуйста, ознакомьтесь с https://github.com/christophetd/code-execution-api-demo
Это все еще на стадии Альфа, так что могут быть некоторые ошибки. Если вы хотите реализовать это, проверьте 4 ссылки выше, так как документация - WIP.
Чтобы запустить тесты, запустите это в корневом каталоге:
pytest
Для покрытия запустите следующую команду в корневом каталоге:
pytest --cov-report html --cov=PythonBuddy tests/
Почему ты сделал это?
В 2014 году я был сообществом в MIT EDX 6.00.1x, где я помогал преподавать более 1000 студентов. Через год после того, как я начал исследовать под руководством профессора Эни Мустафарадж. У нее был набор данных из этого курса, и мы увидели высокий уровень истощения студентов в течение первых 2 недель. После того, как я копал учебную программу и данные, я понял, что ученики ушли из -за трудностей с созданием своей среды Python и сложных сообщений об ошибках, которые они не могли решить при запуске своего кода (например, у некоторых студентов были проблемы с пути).
Итак, я создал PythonBuddy для решения этой проблемы, чтобы студенты не пришлось испытывать разочарования на создании среды Python и сталкиваться с кажущимися «случайными» ошибками. Pythonbuddy позволяет пользователям прыгать прямо в программирование Python с поддержкой проверки и выделения синтаксиса в прямом эфире. Кроме того, профессора и учителя могут легко настроить сервер и позволить студентам быстро проверить свой код с помощью Pythonbuddy Online.
Кто -нибудь создавал что -нибудь подобное раньше?
Для Python Online никогда не было живого синтаксиса для Python. Подобные проекты, которые не являются «живыми», являются 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, вы можете проверить мою реализацию PythonBuddy с Docker и Node.js: https://github.com/ethanchewy/pythonbuddy#secure-sandboxed-version-using-docker. По сути, он предназначен для каждого сеанса пользователя (аналогично созданию виртуальной машины для каждого пользователя) и разрушает его, если он использует слишком много памяти или запускает вредоносный код.
Если вы хотите на самом деле выполнить Python ограниченным образом в моем ограниченном филиале Python: https://github.com/ethanchewy/pythonbuddy/tree/restrictedpython.
Как запустить свой собственный сервер? Регулярный: https://github.com/ethanchewy/onlinepythonlintersyntaxchecker/wiki
Sandboxed: https://github.com/ethanchewy/pythonbuddy/wiki/running-sandboxed-pythonbuddy
Показаны на Flaskcon 2020, Python Weekly, автор CSS и подкаст Talk Python
Это было сделано Итаном Чиу в качестве исследовательского проекта под руководством профессора колледжа Уэллсли Эни Мустафарадж.
По состоянию на октябрь 2020 года PythonBuddy.com больше не будет демонстрационным сервером для этого проекта с открытым исходным кодом из-за растущих затрат на его размещение для ежемесячно более 80 000 человек. Вместо этого этот URL будет перенаправить обратно в это репо GitHub.