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.