
git clone https://github.com/ethanchewy/PythonBuddy.git
cd PythonBuddy
python3 -m venv venv
source venv/bin/activate
python --version
Se você não usar o Python Python 3.7.6, algumas bibliotecas do Python em que o Pythonbuddy depende podem não funcionar . Consulte esta documentação para descobrir como criar uma versão específica do Python via VirtualEnv por este post Stackoverflow.
pip install -r requirements.txt
PythonBuddy/PythonBuddy/ . cd PythonBuddy
export FLASK_APP=app.py
flask run
Abra seu navegador para localhost: 5000. Pronto! ?



Confira o PythonBudDySandBoxed para uma implementação da Web totalmente em funcionamento, que usa uma versão Dockerized do PythonBuddy chamada PythonBudDySandBox.
Isso se consegue com a caixa de areia Docker-Python de Christophetd e apenas o modifica para que ele execute o Pylint em segundo plano e processe as mensagens Pylint no lado do cliente.
Para ver como ele o implementa do lado da web, consulte https://github.com/christophetd/code-execution-api-demo
Isso ainda está no estágio alfa, então pode haver alguns bugs. Se você deseja implementar isso, verifique os 4 links acima, pois a documentação é um WIP.
Para executar testes, execute isso no diretório raiz:
pytest
Para cobertura, execute o seguinte comando no diretório raiz:
pytest --cov-report html --cov=PythonBuddy tests/
Por que você fez isso?
Em 2014, eu era uma comunidade TA no curso MIT Edx 6.00.1x, onde ajudei a ensinar mais de 1000 alunos. No ano seguinte, comecei a pesquisar sob o Prof. Eni Mustafaraj. Ela tinha um conjunto de dados desse curso e vimos uma alta taxa de atrito dos alunos nas primeiras 2 semanas. Depois de cavar o currículo e os dados, percebi que os alunos saíram devido a dificuldades para configurar seu ambiente Python e mensagens de erro complexas que não conseguiram resolver ao executar seu código (ex: alguns alunos tiveram problemas de caminho).
Então, eu criei o PythonBuddy para resolver esse problema para que os alunos não precisassem passar pelas frustrações de estabelecer um ambiente Python e encontrar bugs aparentemente "aleatórios". O Pythonbuddy permite que os usuários entrem em programação Python com o suporte à verificação e destaque da sintaxe ao vivo. Além disso, professores e professores podem facilmente configurar um servidor e permitir que os alunos testem rapidamente seu código com o PythonBuddy online.
Alguém já criou algo assim antes?
Nunca houve um verificador de sintaxe ao vivo para Python online. Projetos semelhantes que não são "ao vivo" são http://pep8online.com/ e http://antares.sip.ucm.es/cesars/pylint/
Como posso contribuir?
Você pode ? Estrela meu repositório, bifurcar meu repositório, enviar uma solicitação de tração e/ou em problemas abertos!
Onde está o código para incorporá -lo em MOOCs?
Atualmente, estou trabalhando nisso aqui (para EDX especificamente): https://github.com/ethanchewy/pybuddy2.0. Se você deseja incorporar este projeto diretamente ao seu site, usaria um iframe:
<iframe src="https://pythonbuddy.com"></iframe>
Eu quero que o código realmente compile e seja executado de uma certa maneira?
Para executar o Pythonbuddy com segurança, você pode conferir minha implementação do Pythonbuddy com o Docker e Node.js: https://github.com/ethenchewy/pythonbuddy#secure-sandboxed-version-using-docker. Basicamente, ele dockeriza cada sessão de usuário (semelhante à criação de uma máquina virtual para cada usuário) e a destrói se ele usar muita memória ou executar um código malicioso.
Se você deseja executar o Python de maneira restrita na minha filial restrita de Python: https://github.com/ethanchewy/pythonbuddy/tree/restrintython.
Como faço para executar meu próprio servidor? Regular: https://github.com/ethanchewy/onlinepythonlinersyntoxchecker/wiki
Sandboxed: https://github.com/ethanchewy/pythonbuddy/wiki/running-sandboxed-pythonbuddy
Apresentado no Flaskcon 2020, Python Weekly, autor CSS e The Talk Python Podcast
Isso foi feito por Ethan Chiu como um projeto de pesquisa sob a orientação do professor do Wellesley College, Eni Mustafaraj.
Em outubro de 2020, o Pythonbuddy.com não será mais um servidor de demonstração para este projeto de código aberto devido aos custos crescentes de hospedá-lo para mais de 80.000 pessoas mensalmente. Em vez disso, esse URL redirecionará de volta para este repositório do GitHub.