PyScript é um framework que executa código Python diretamente no HTML.
Ele usa WebAssembly (Wasm) como tecnologia base para isso.
Primeiramente, não é necessário instalar nada no servidor.
Todo o processamento acontece na máquina do usuário.
Por exemplo, você pode escrever <py-script>print("Olá")</py-script>.
O navegador executa esse código como se fosse JavaScript.
A voz passiva é usada aqui: “o interpretador CPython é compilado para Wasm”.
Quando utilizar PyScript? Em protótipos rápidos e demonstrações.
Também é útil para ensinar Python sem instalação local.
No entanto, evite para aplicações críticas ou pesadas.
A biblioteca ainda é jovem e tem limitações de performance.
Vamos explorar seus recursos, vantagens e desvantagens.
Três subtítulos detalham os principais aspectos práticos.
Instalação e primeiro código com pyscript
Para usar PyScript, basta incluir dois arquivos CSS e JS no HTML.
Eles são servidos via CDN (rede de distribuição de conteúdo).
Não há necessidade de pip, virtualenv ou servidor especial.
Todo o código Python fica dentro de tags <py-script>.
Além disso, você pode importar bibliotecas como NumPy ou Matplotlib.
Elas também são carregadas via WebAssembly.
A voz passiva é aplicada: “o código é executado após a página carregar”.
Exemplo completo de uma página PyScript mínima:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" /> <script defer src="https://pyscript.net/latest/pyscript.js"></script> </head> <body> <h1>Calculadora PyScript</h1> <label>Número 1: <input type="number" id="n1" value="5"></label> <label>Número 2: <input type="number" id="n2" value="3"></label> <button id="botao">Somar</button> <div id="resultado"></div> <py-script> from js import document from pyodide import create_proxy def somar(event): n1 = float(document.getElementById("n1").value) n2 = float(document.getElementById("n2").value) resultado = n1 + n2 document.getElementById("resultado").innerHTML = f"Resultado: {resultado}" botao = document.getElementById("botao") botao.addEventListener("click", create_proxy(somar)) </py-script> </body> </html> |
Esse código cria uma calculadora funcional sem backend.
O Python acessa o DOM via objeto js (bridge JavaScript).
A função create_proxy converte funções Python em callbacks JS.
Salve como .html e abra no navegador.
Funciona no Chrome, Firefox e Edge modernos.
Bibliotecas suportadas e limitações atuais
PyScript carrega o ecossistema científico via Pyodide. Isso inclui NumPy, Pandas, Matplotlib e SciPy. Porém, o tempo de carregamento inicial é alto (vários megabytes). Bibliotecas com dependências nativas (como TensorFlow) não funcionam. A comunicação com o DOM é possível, mas verbosa. Além disso, o acesso a arquivos locais é restrito por segurança. Quando usar mesmo com essas limitações? Em tutoriais interativos. Por exemplo, um site que ensina estatística com gráficos ao vivo. Também em dashboards internos de empresas. A fórmula de tempo de carregamento: \(T_{\text{total}} = T_{\text{Wasm}} + T_{\text{libs}}\) Onde cada lib adiciona cerca de 1 a 5 MB. Portanto, evite bibliotecas pesadas desnecessariamente.
PyScript vs. javascript vs. servidor tradicional
JavaScript é muito mais rápido e leve que PyScript. Para manipulação intensa do DOM, JS ainda é a escolha certa. Por outro lado, PyScript permite reusar código Python existente. Cientistas de dados podem migrar notebooks Jupyter para o navegador. Já o backend tradicional exige servidor e infraestrutura. PyScript elimina custos de hospedagem e escala automaticamente. A voz passiva é aplicada: “toda lógica é executada no lado do cliente”. Entretanto, dados sensíveis não podem ficar no frontend. Qualquer usuário pode ver seu código Python (não é ofuscado). Portanto, use PyScript apenas para lógica não secreta. Casos de uso ideais: calculadoras, visualizações, simuladores educacionais. Evite para autenticação, pagamentos ou dados privados. PyScript é uma ferramenta revolucionária em maturação. Experimente em projetos pessoais e compartilhe com a comunidade. O futuro do Python no navegador nunca esteve tão próximo.