
git clone https://github.com/ethanchewy/PythonBuddy.git
cd PythonBuddy
python3 -m venv venv
source venv/bin/activate
python --version
Si no usa Python Python 3.7.6, algunas bibliotecas de Python en las que se basa Pythonbuddy puede no funcionar . Consulte esta documentación para descubrir cómo crear una versión específica de Python a través de VirtualEnv a través de esta publicación de StackOverflow.
pip install -r requirements.txt
PythonBuddy/PythonBuddy/ . cd PythonBuddy
export FLASK_APP=app.py
flask run
Abra su navegador a Localhost: 5000. ¡Voila! ?



Echa un vistazo a PythonBuddysandBoxed para una implementación web completamente en funcionamiento que utiliza una versión dockerizada de PythonBuddy llamada PythonBuddysandbox.
Esto se basa en el Docker-Python-Sandbox de Christophetd y simplemente lo modifica para que ejecute Pylint en segundo plano y procese los mensajes de Pylint en el lado del cliente.
Para ver cómo lo implementa en el lado web, consulte https://github.com/christophetd/code-execution-api-demo
Esto todavía está en la etapa alfa, por lo que puede haber algunos errores. Si desea implementar esto, verifique los 4 enlaces anteriores ya que la documentación es un WIP.
Para ejecutar pruebas, ejecute esto en el directorio root:
pytest
Para la cobertura, ejecute el siguiente comando en el directorio raíz:
pytest --cov-report html --cov=PythonBuddy tests/
¿Por qué hiciste esto?
En 2014, era una comunidad en el curso MIT EDX 6.00.1X donde ayudé a enseñar a más de 1000 estudiantes. El año después de que comencé a investigar con el Prof. Eni Mustafaraj. Tenía un conjunto de datos de ese curso y vimos una alta tasa de desgaste de estudiantes en las primeras 2 semanas. Después de cavar en el plan de estudios y los datos, me di cuenta de que los estudiantes se fueron debido a dificultades para establecer su entorno de Python y mensajes de error complejos que no podían resolver al ejecutar su código (ex: algunos estudiantes tenían problemas de ruta).
Entonces, creé PythonBuddy para abordar este problema para que los estudiantes no tengan que pasar por las frustraciones de establecer un entorno de Python y encontrarse con errores aparentemente "aleatorios". PythonBuddy permite a los usuarios saltar directamente a la programación de Python con el soporte de la verificación y resaltado de sintaxis en vivo. Además, los profesores y los maestros podrían configurar fácilmente un servidor y permitir a los estudiantes probar rápidamente su código con PythonBuddy Online.
¿Alguien ha creado algo como esto antes?
Nunca ha habido un controlador de sintaxis en vivo para Python Online. Proyectos similares que no están "en vivo" son http://pep8online.com/ y http://antares.sip.ucm.es/ces/pylint/
¿Cómo puedo contribuir?
Puede ? ¡Estrella mi repositorio, bifurcado mi repositorio, envíe una solicitud de extracción y/o problemas abiertos!
¿Dónde está el código para incrustarlo en MOOC?
Actualmente estoy trabajando en esto aquí (para EDX específicamente): https://github.com/ethanchewy/pybuddy2.0. Si desea integrar este proyecto directamente en su sitio, usaría un iframe:
<iframe src="https://pythonbuddy.com"></iframe>
¿Quiero que el código realmente se compile y se ejecute de cierta manera?
Para ejecutar PythonBuddy de forma segura, puede consultar mi implementación de PythonBuddy con Docker y Node.js: https://github.com/ethanchewy/pythonbuddy#secure-sandboxed-version-susing-docker. Básicamente, cuadra cada sesión de usuario (similar a la creación de una máquina virtual para cada usuario) y la destruye si usa demasiada memoria o ejecuta código malicioso.
Si realmente quieres ejecutar el Python de una manera restringida en mi rama de Python restringida: https://github.com/ethanchewy/pythonbuddy/tree/restregedpython.
¿Cómo ejecuto mi propio servidor? Regular: https://github.com/ethanchewy/onlinepythonlintersyntaxchecker/wiki
Sandboxed: https://github.com/ethanchewy/pythonbuddy/wiki/running-sandboxed-pythonbuddy
Presentado en Flaskcon 2020, Python Weekly, CSS Autor y The Talk Python Podcast
Ethan Chiu realizó esto como un proyecto de investigación bajo la guía del profesor de Wellesley College Eni Mustafaraj.
A partir de octubre de 2020, PythonBuddy.com ya no será un servidor de demostración para este proyecto de código abierto debido a los costos crecientes de alojarlo para más de 80,000 personas mensualmente. En cambio, esta URL redirigirá a este repositorio de GitHub.