
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 voila -



โปรดตรวจสอบ PythonBudDySandBoxed สำหรับการใช้งานเว็บที่ใช้งานได้อย่างสมบูรณ์ซึ่งใช้ PythonBuddy เวอร์ชัน Dockerized ที่เรียกว่า PythonBudDySandBox
สิ่งนี้สร้างขึ้นจาก Docker-Python-Sandbox ของ Christophetd และเพียงแค่ปรับเปลี่ยนเพื่อให้มันรันไพลลินต์ในพื้นหลังและประมวลผลข้อความไพล์นินินทางฝั่งไคลเอ็นต์
หากต้องการดูว่าเขาใช้งานด้านเว็บได้อย่างไรโปรดตรวจสอบ https://github.com/christophetd/code-execution-api-demo
นี่ยังอยู่ในช่วงอัลฟ่าดังนั้นอาจมีข้อบกพร่องบางอย่าง หากคุณต้องการใช้งานนี้โปรดตรวจสอบ 4 ลิงก์ด้านบนเนื่องจากเอกสารประกอบเป็น WIP
ในการเรียกใช้การทดสอบให้เรียกใช้สิ่งนี้ที่ไดเรกทอรีรูท:
pytest
สำหรับความครอบคลุมเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีรูท:
pytest --cov-report html --cov=PythonBuddy tests/
ทำไมคุณถึงทำสิ่งนี้?
ในปี 2014 ฉันเป็นชุมชน TA ที่ MIT EDX 6.00.1X หลักสูตรที่ฉันช่วยสอนนักเรียนมากกว่า 1,000 คน ปีหลังจากที่ฉันเริ่มค้นคว้าภายใต้ศาสตราจารย์ Eni Mustafaraj เธอมีชุดข้อมูลจากหลักสูตรนั้นและเราเห็นอัตราการขัดสีของนักเรียนสูงภายใน 2 สัปดาห์แรก หลังจากขุดผ่านหลักสูตรและข้อมูลฉันรู้ว่านักเรียนจากไปเนื่องจากความยากลำบากในการตั้งค่าสภาพแวดล้อม Python และข้อความแสดงข้อผิดพลาดที่ซับซ้อนซึ่งพวกเขาไม่สามารถแก้ไขได้เมื่อใช้รหัสของพวกเขา (เช่น: นักเรียนบางคนมีปัญหาเส้นทาง)
ดังนั้นฉันจึงสร้าง Pythonbuddy เพื่อแก้ไขปัญหานี้เพื่อให้นักเรียนไม่ต้องผ่านความผิดหวังในการตั้งค่าสภาพแวดล้อม Python และพบกับข้อบกพร่องที่ "สุ่ม" Pythonbuddy อนุญาตให้ผู้ใช้กระโดดเข้าสู่การเขียนโปรแกรม Python ด้วยการสนับสนุนการตรวจสอบและไฮไลต์ไวยากรณ์สด นอกจากนี้อาจารย์และครูสามารถตั้งค่าเซิร์ฟเวอร์ได้อย่างง่ายดายและอนุญาตให้นักเรียนทดสอบรหัสด้วย Pythonbuddy ออนไลน์ได้อย่างรวดเร็ว
มีใครสร้างอะไรแบบนี้มาก่อนหรือไม่?
ไม่เคยมีตัวตรวจสอบไวยากรณ์สดสำหรับ Python Online โครงการที่คล้ายกันที่ไม่ใช่ "สด" คือ http://pep8online.com/ และ http://antares.sip.ucm.es/cesar/pylint/
ฉันจะมีส่วนร่วมได้อย่างไร?
คุณทำได้? แสดง repo ของฉันแยก repo ของฉันส่งคำขอดึงและ/หรือปัญหาเปิด!
รหัสสำหรับฝังอยู่ที่ไหนใน MOOCs?
ฉันกำลังทำงานเกี่ยวกับเรื่องนี้ที่นี่ (สำหรับ 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 Author และ The Talk Python Podcast
สิ่งนี้ทำโดย Ethan Chiu ในฐานะโครงการวิจัยภายใต้คำแนะนำของศาสตราจารย์ ENI Mustafaraj ศาสตราจารย์ Wellesley College
ณ เดือนตุลาคม 2563 Pythonbuddy.com จะไม่เป็นเซิร์ฟเวอร์ตัวอย่างสำหรับโครงการโอเพนซอร์ซนี้อีกต่อไปเนื่องจากค่าใช้จ่ายที่เพิ่มขึ้นของการโฮสต์สำหรับ 80,000 คนต่อเดือน URL นี้จะเปลี่ยนเส้นทางกลับไปยัง repo github นี้แทน