
git clone https://github.com/ethanchewy/PythonBuddy.git
cd PythonBuddy
python3 -m venv venv
source venv/bin/activate
python --version
Wenn Sie Python Python 3.7.6 nicht verwenden, funktionieren einige Python -Bibliotheken, auf die Pythonbuddy angewiesen ist, möglicherweise nicht . Weitere Informationen finden Sie in dieser Dokumentation, um herauszufinden, wie Sie eine bestimmte Version von Python über Virtualenv über diesen Stackoverflow -Beitrag erstellen.
pip install -r requirements.txt
PythonBuddy/PythonBuddy/ sein. cd PythonBuddy
export FLASK_APP=app.py
flask run
Öffnen Sie Ihren Browser für Localhost: 5000. Voila! ?



Bitte lesen Sie Pythonbuddysandboxed für eine vollständig funktionierende Web -Implementierung, die eine dockerisierte Version von Pythonbuddy namens Pythonbuddysandbox verwendet.
Dies baut aus Christophetds Docker-Python-Sandbox auf und modifiziert es nur so, dass Pyndin im Hintergrund ausgeführt wird und die Pylint-Nachrichten auf der Clientseite verarbeitet.
Um zu sehen, wie er es auf der Webseite implementiert, lesen Sie bitte https://github.com/christophetd/code-execution-api-demo
Dies befindet sich immer noch in der Alpha -Stufe, sodass es einige Fehler gibt. Wenn Sie dies implementieren möchten, überprüfen Sie bitte die 4 obigen 4 Links, da die Dokumentation ein WIP ist.
Um Tests auszuführen, führen Sie dies im Stammverzeichnis aus:
pytest
Für die Berichterstattung führen Sie den folgenden Befehl im Stammverzeichnis aus:
pytest --cov-report html --cov=PythonBuddy tests/
Warum hast du das gemacht?
Im Jahr 2014 war ich Community TA am MIT EDX 6.00.1x Kurs, wo ich über 1000 Schüler beigebracht habe. Ein Jahr nachdem ich mit der Erforschung von Prof. Eni Mustafaraj angefangen hatte. Sie hatte einen Datensatz aus diesem Kurs und wir sahen innerhalb der ersten 2 Wochen eine hohe Abnutzungsrate von Studenten. Nachdem ich den Lehrplan und die Daten durchgehoben hatte, stellte ich fest, dass die Schüler aufgrund von Schwierigkeiten gingen, ihre Python -Umgebung und komplexe Fehlermeldungen zu errichten, die sie beim Ausführen ihres Code nicht lösen konnten (z. B. einige Schüler hatten Probleme mit dem Pfad).
Also habe ich Pythonbuddy erstellt, um dieses Problem anzugehen, damit die Schüler die Frustrationen, eine Python -Umgebung aufzubauen und scheinbar "zufällige" Fehler aufzubauen, nicht durchgehen müssen. Mit Pythonbuddy können Benutzer mit der Unterstützung der Live -Syntax -Überprüfung und -Hitzbeleuchtung direkt in die Python -Programmierung springen. Außerdem könnten Professoren und Lehrer problemlos einen Server einrichten und den Schülern ermöglichen, ihren Code schnell mit Pythonbuddy online zu testen.
Hat jemand so etwas schon einmal geschaffen?
Es gab noch nie einen Live -Syntax -Checker für Python online. Ähnliche Projekte, die nicht "live" sind
Wie kann ich dazu beitragen?
Du kannst ? Sterne mein Repo, gib mein Repo, sende eine Pull -Anfrage und/oder offene Probleme!
Wo ist der Code zum Einbetten in MOOCs?
Ich arbeite gerade hier daran (speziell für EDX): https://github.com/ethanchewy/pybuddy2.0. Wenn Sie dieses Projekt direkt in Ihre Website einbetten möchten, verwenden Sie einen Iframe:
<iframe src="https://pythonbuddy.com"></iframe>
Ich möchte, dass der Code tatsächlich kompiliert und auf eine bestimmte Weise ausgeführt wird?
Um Pythonbuddy sicher auszuführen, können Sie meine Implementierung von Pythonbuddy mit Docker und Node.js: https://github.com/ethanchewy/pythonbuddy#secure-sandboxed-version-using-docker überprüfen. Grundsätzlich dokiert es jede Benutzersitzung (ähnlich dem Erstellen eines virtuellen Computers für jeden Benutzer) und zerstört sie, wenn sie zu viel Speicher verwendet oder böswilligen Code ausgeführt wird.
Wenn Sie die Python in meiner eingeschränkten Python -Niederlassung tatsächlich auf eingeschränkte Weise ausführen möchten: https://github.com/ethanchewy/pythonbuddy/tree/restrictedpython.
Wie führe ich meinen eigenen Server aus? Regular: https://github.com/ethanchewy/onlinepythonlintersyntaxchecker/wiki
Sandboxed: https://github.com/ethanchewy/pythonbuddy/wiki/running-sandboxed-pythonbuddy
Vorgestellt auf Flaskcon 2020, Python Weekly, CSS -Autor und The Talk Python Podcast
Dies wurde von Ethan Chiu als Forschungsprojekt unter der Anleitung des Professors des Wellesley College Eni Mustafaraj gemacht.
Ab Oktober 2020 wird Pythonbuddy.com aufgrund der zunehmenden Kosten für die Hosting für mehr als 80.000 Menschen monatlich kein Demo-Server mehr für dieses Open-Source-Projekt sein. Stattdessen wird diese URL zu diesem Github -Repo zurückleiten.