
git clone https://github.com/ethanchewy/PythonBuddy.git
cd PythonBuddy
python3 -m venv venv
source venv/bin/activate
python --version
Si vous n'utilisez pas Python Python 3.7.6, certaines bibliothèques Python sur lesquelles PythonBuddy s'appuie peut ne pas fonctionner . Veuillez vous référer à cette documentation pour déterminer comment créer une version spécifique de Python via VirtualEnv via ce post Stackoverflow.
pip install -r requirements.txt
PythonBuddy/PythonBuddy/ . cd PythonBuddy
export FLASK_APP=app.py
flask run
Ouvrez votre navigateur à LocalHost: 5000. Le tour est joué! ?



Veuillez consulter PythonBuddysAndBoxed pour une implémentation Web entièrement fonctionnelle qui utilise une version dockée de PythonBuddy appelé PythonBuddySandBox.
Cela s'accumule sur Docker-Python-Sandbox de Christophetd et le modifie simplement afin qu'il exécute Pylint en arrière-plan et traite les messages Pylint du côté du client.
Pour voir comment il l'implémente du côté Web, veuillez consulter https://github.com/christophetd/code-execution-api-demo
Ceci est toujours en phase alpha, donc il pourrait y avoir des bugs. Si vous souhaitez l'implémenter, veuillez consulter les 4 liens ci-dessus, car la documentation est un WIP.
Pour exécuter des tests, exécutez-le au répertoire racine:
pytest
Pour la couverture, exécutez la commande suivante dans le répertoire racine:
pytest --cov-report html --cov=PythonBuddy tests/
Pourquoi avez-vous fait cela?
En 2014, j'étais une communauté TA au cours du MIT EDX 6.00.1x où j'ai aidé à enseigner plus de 1000 étudiants. L'année après avoir commencé à rechercher sous le professeur Eni Mustafaraj. Elle avait un ensemble de données de ce cours et nous avons vu un taux d'attrition élevé des étudiants au cours des 2 premières semaines. Après avoir fouillé le programme et les données, j'ai réalisé que les élèves avaient quitté en raison de difficultés à configurer leur environnement python et leurs messages d'erreur complexes qu'ils ne pouvaient pas résoudre lors de l'exécution de leur code (Ex: Certains étudiants avaient des problèmes de chemin).
J'ai donc créé PythonBuddy pour résoudre ce problème afin que les étudiants n'auraient pas à passer par les frustrations de la création d'un environnement Python et de rencontrer des bugs apparemment "aléatoires". PythonBuddy permet aux utilisateurs de sauter directement dans la programmation Python avec le support de la vérification et de la mise en évidence de la syntaxe en direct. En outre, les professeurs et les enseignants pourraient facilement configurer un serveur et permettre aux étudiants de tester rapidement leur code avec PythonBuddy en ligne.
Quelqu'un a-t-il déjà créé quelque chose comme ça?
Il n'y a jamais eu de vérificateur de syntaxe en direct pour Python en ligne. Des projets similaires qui ne sont pas "en direct" sont http://pep8online.com/ et http://antares.sip.ucm.es/cesar/pylint/
Comment puis-je contribuer?
Tu peux ? Mettez en vedette mon dépôt, fourchez mon dépôt, soumettez une demande de traction et / ou des problèmes ouverts!
Où est le code pour l'intégrer dans les MOOC?
Je travaille actuellement ici (pour EDX spécifiquement): https://github.com/ethanchewy/pybuddy2.0. Si vous souhaitez intégrer ce projet directement sur votre site, vous utiliseriez un iframe:
<iframe src="https://pythonbuddy.com"></iframe>
Je veux que le code compile et exécute réellement une certaine manière?
Pour exécuter PythonBuddy en toute sécurité, vous pouvez consulter mon implémentation de PythonBuddy avec docker et node.js: https://github.com/ethanchewy/pythonbuddy#secure-sandboxed-version-using-docker. Fondamentalement, il amène chaque session utilisateur (similaire à la création d'une machine virtuelle pour chaque utilisateur) et le détruit s'il utilise trop de mémoire ou exécute du code malveillant.
Si vous souhaitez réellement exécuter le Python d'une manière restreinte dans ma branche Python restreinte: https://github.com/ethanchewy/pythonbuddy/tree/restrictedpython.
Comment exécuter mon propre serveur? RETUMAGE: https://github.com/ethanchewy/onlinepythonlinersyntaxchecker/wiki
Sandboxed: https://github.com/ethanchewy/pythonbuddy/wiki/running-sandboxed-pythonbuddy
En vedette sur Flaskcon 2020, Python Weekly, auteur CSS et le podcast Talk Python
Cela a été réalisé par Ethan Chiu en tant que projet de recherche sous la direction du professeur de Wellesley College Eni Mustafaraj.
En octobre 2020, PythonBuddy.com ne sera plus un serveur de démonstration pour ce projet open-source en raison des coûts croissants de l'hébergement pour plus de 80 000 personnes par mois. Au lieu de cela, cette URL redirigera vers ce repo github.