
git clone https://github.com/ethanchewy/PythonBuddy.git
cd PythonBuddy
python3 -m venv venv
source venv/bin/activate
python --version
Jika Anda tidak menggunakan Python Python 3.7.6, beberapa perpustakaan Python yang diandalkan Pythonbuddy mungkin tidak berfungsi . Silakan merujuk ke dokumentasi ini untuk mencari tahu cara membuat versi spesifik Python melalui VirtualEnv melalui posting StackOverflow ini.
pip install -r requirements.txt
PythonBuddy/PythonBuddy/ . cd PythonBuddy
export FLASK_APP=app.py
flask run
Buka browser Anda ke LocalHost: 5000. Voila! ?



Silakan periksa PythonBuddySandboxed untuk implementasi web yang berfungsi sepenuhnya yang menggunakan versi berlabuh dari Pythonbuddy yang disebut PythonBuddySandbox.
Ini dibangun dari Docker-Python-Sandbox Christophetd dan hanya memodifikasinya sehingga menjalankan Pylint di latar belakang dan memproses pesan Pylint di sisi klien.
Untuk melihat bagaimana dia mengimplementasikannya di sisi web, silakan lihat https://github.com/christophetd/code-execution-api-demo
Ini masih dalam tahap alfa sehingga mungkin ada beberapa bug. Jika Anda ingin mengimplementasikan ini, periksa 4 tautan di atas karena dokumentasi adalah WIP.
Untuk menjalankan tes, jalankan ini di direktori root:
pytest
Untuk cakupan jalankan perintah berikut di direktori root:
pytest --cov-report html --cov=PythonBuddy tests/
Mengapa Anda membuat ini?
Pada tahun 2014, saya adalah TA Komunitas di MIT EDX 6.00.1X kursus di mana saya membantu mengajar lebih dari 1000 siswa. Tahun setelah saya mulai meneliti di bawah Prof. Eni Mustafaraj. Dia memiliki kumpulan data dari kursus itu dan kami melihat tingkat gesekan yang tinggi dari siswa dalam 2 minggu pertama. Setelah menggali melalui kurikulum dan data, saya menyadari bahwa para siswa pergi karena kesulitan menyiapkan lingkungan Python dan pesan kesalahan kompleks yang tidak dapat mereka selesaikan ketika menjalankan kode mereka (mis: beberapa siswa memiliki masalah jalur).
Jadi, saya membuat Pythonbuddy untuk mengatasi masalah ini sehingga siswa tidak harus melalui frustrasi mendirikan lingkungan Python dan mengalami bug yang tampaknya "acak". Pythonbuddy memungkinkan pengguna untuk langsung ke pemrograman Python dengan dukungan pemeriksaan & penyorotan sintaksis langsung. Juga, profesor dan guru dapat dengan mudah mengatur server dan memungkinkan siswa untuk dengan cepat menguji kode mereka dengan Pythonbuddy Online.
Adakah yang membuat hal seperti ini sebelumnya?
Tidak pernah ada pemeriksa sintaks langsung untuk Python Online. Proyek serupa yang tidak "hidup" adalah http://pep8online.com/ dan http://antares.sip.ucm.es/cesar/pylint/
Bagaimana saya bisa berkontribusi?
Anda bisa? Bintangi repo saya, garpu repo saya, kirimkan permintaan tarik, dan/atau masalah terbuka!
Di mana kode untuk menanamkannya di MOOCs?
Saat ini saya sedang mengerjakan ini di sini (untuk EDX secara khusus): https://github.com/ethanchewy/pybuddy2.0. Jika Anda ingin menyematkan proyek ini langsung ke situs Anda, Anda akan menggunakan iframe:
<iframe src="https://pythonbuddy.com"></iframe>
Saya ingin kode tersebut benar -benar mengkompilasi dan berjalan dengan cara tertentu?
Untuk menjalankan Pythonbuddy dengan aman, Anda dapat melihat implementasi Pythonbuddy saya dengan Docker dan Node.js: https://github.com/ethanchewy/pythonbuddy#secure-sandboxed-ver-se-using-docker. Pada dasarnya, ia merampok setiap sesi pengguna (mirip dengan membuat mesin virtual untuk setiap pengguna) dan menghancurkannya jika menggunakan terlalu banyak memori atau menjalankan kode berbahaya.
Jika Anda ingin benar -benar menjalankan Python dengan cara terbatas di cabang Python saya yang terbatas: https://github.com/ethanchewy/pythonbuddy/tree/restrictedpython.
Bagaimana cara menjalankan server saya sendiri? Reguler: https://github.com/ethanchewy/onlinepythonlintersyntaxchecker/wiki
Sandboxed: https://github.com/ethanchewy/pythonbuddy/wiki/running-sand-sandboxed-pythonbuddy
Ditampilkan di Flaskon 2020, Python Weekly, Penulis CSS, dan podcast Talk Python
Ini dibuat oleh Ethan Chiu sebagai proyek penelitian di bawah bimbingan Profesor Wellesley College Eni Mustafaraj.
Pada Oktober 2020, pythonbuddy.com tidak akan lagi menjadi server demo untuk proyek open-source ini karena meningkatnya biaya hosting untuk 80.000+ orang setiap bulan. Sebaliknya, URL ini akan mengarahkan kembali ke repo GitHub ini.