Script Python (motore Pyodide)

Scegliere Python per uno script lo fa girare in un motore integrato, con le stesse regole di sandbox del JavaScript. Il motore si scarica una volta sola, con un clic, e poi gira interamente offline.

Senzoukria · Documentazione · Aggiornato a settembre 2026


Dove trovarlo

Dove
Pagina Scripting → Linguaggio → Python, poi la fascia «Motore Python»
Download
Sei file, circa 16,4 MB in totale, scaricati una volta sola
Incluso
numpy, nella wheel corrispondente all'ABI del motore
Budget di avvio
120 s per l'avvio; il download ha il suo budget di 600 s
Budget di script
2 s per esecuzione, come in JavaScript

Che cosa fa

Il linguaggio si sceglie per script e viene salvato insieme a esso. I due linguaggi ricevono gli stessi dati e restituiscono le stesse forme, così uno script portato dall'uno all'altro ritrova i suoi riferimenti: le colonne delle barre sono esposte con i loro nomi, gli helper di calcolo mantengono gli stessi nomi e i costruttori di output corrispondono uno a uno.

L'avvio del motore è uno stato di prima classe, mostrato su una fascia propria, e non si confonde mai con l'esecuzione di uno script. Questa distinzione conta: il motore impiega alcuni secondi ad avviarsi mentre un'esecuzione di script ha un budget di due secondi, quindi fondere i due farebbe sembrare un ciclo infinito ogni script Python corretto.

Nulla si scarica da solo. Installare è un clic; l'avvio automatico avviene solo quando i file sono già presenti.

Stati del motore

La fascia del motore Python, stato per stato
StatoPredefinitoChe cosa cambia
Non installatoinizialePropone «Installa il motore Python» e indica la dimensione del download una tantum.
Download in corsoMostra una percentuale e propone «Annulla il download».
Avvio in corsoIl motore si sta avviando; gli script attendono invece di fallire.
Motore prontoMostra la versione e i millisecondi impiegati per l'avvio, e propone «Rimuovi il motore».
Motore non disponibileIndica che il motore non è partito, con il messaggio grezzo, e propone «Riprova». Gli script JavaScript non sono interessati.
Nota offlinesempreUna volta installato, il motore gira interamente offline: nessuno script e nessun dato viene inviato da nessuna parte.

Linguaggio incoerente

Incollare uno script Python in una bozza ancora impostata su JavaScript produceva un errore di sintassi su una riga arbitraria, più consigli su console.log a chi stava scrivendo Python. Ora la pagina verifica se il codice contraddice il linguaggio dichiarato e lo dice, con un pulsante che passa a quello rilevato.

Il controllo è volutamente stretto: cerca solo i segni che sono veri errori di sintassi nell'altro linguaggio, e tace quando un file porta i segni di entrambi — su uno script tradotto a metà non c'è nulla di utile da dire. Mancare un rilevamento ti riporta soltanto al vecchio messaggio oscuro; inventarne uno ti manderebbe a cambiare un linguaggio che era corretto.

Limiti e trappole

  • Cambiare linguaggio non traduce il tuo codice: resta esattamente com'è scritto e non girerà finché non lo riscrivi.
  • I file del motore vengono scaricati dal relay del prodotto, l'unica origine remota consentita dalla politica di contenuto dell'applicazione.
  • La versione del motore è fissata e verificata rispetto al binario compilato; mescolare versioni viene rifiutato invece di produrre crash illeggibili.
  • Il backtest di una strategia Python esegue il ciclo dal lato Python invece di attraversare il confine tra linguaggi a ogni barra, e un test di parità confronta le sue operazioni con quelle del ciclo JavaScript barra per barra. print() finisce nel log, preceduto dalla barra corrente.

Questa pagina in altre lingue

Domande frequenti

Mi serve Python installato sul computer?
No. Il motore è integrato e viene scaricato una volta dall'applicazione. Non usa e non richiede un'installazione Python di sistema.
Quali librerie sono disponibili?
La libreria standard più numpy, distribuita nella wheel corrispondente all'ABI del motore. Dentro la sandbox non c'è accesso alla rete, quindi non si possono scaricare pacchetti durante l'esecuzione.
Perché il mio script Python fallisce con un errore di sintassi su una riga che non esiste?
È la firma di un linguaggio incoerente: al tuo sorgente è stato aggiunto un wrapper nell'altro linguaggio. Cambia il linguaggio dello script ed esegui di nuovo.