Scripts Python (moteur Pyodide)

Choisir Python pour un script l'exécute dans un moteur embarqué, sous les mêmes règles de bac à sable que le JavaScript. Le moteur se télécharge une fois, sur un clic, puis tourne entièrement hors ligne.

Senzoukria · Documentation · Mis à jour en septembre 2026


Où le trouver

Page Scripting → Langage → Python, puis le bandeau « Moteur Python »
Téléchargement
Six fichiers, environ 16,4 Mo au total, récupérés une seule fois
Inclus
numpy, dans la version compilée correspondant à l'ABI du moteur
Budget de démarrage
120 s pour l'amorçage ; le téléchargement a son propre budget de 600 s
Budget du script
2 s par exécution, comme en JavaScript

Ce que ça fait

Le langage se choisit par script et se range avec lui. Les deux langages reçoivent les mêmes données et rendent les mêmes formes : un script porté de l'un à l'autre retrouve ses repères — les colonnes des barres sont exposées sous leurs noms, les fonctions de calcul gardent les mêmes noms, et les constructeurs de sortie se correspondent un pour un.

Le démarrage du moteur est un état à part entière, affiché sur son propre bandeau, et n'est jamais confondu avec l'exécution d'un script. La distinction compte : le moteur met plusieurs secondes à démarrer alors qu'une exécution dispose de deux secondes. Confondre les deux ferait passer tout script Python correct pour une boucle infinie.

Rien ne se télécharge tout seul. Installer est un clic ; le démarrage automatique n'a lieu que si les fichiers sont déjà présents.

États du moteur

Le bandeau du moteur Python, état par état
ÉtatPar défautCe que ça change
Non installéinitialPropose « Installer le moteur Python » et annonce la taille du téléchargement unique.
TéléchargementAffiche un pourcentage et propose « Annuler le téléchargement ».
DémarrageLe moteur s'amorce ; les scripts attendent au lieu d'échouer.
Moteur prêtAffiche la version et le nombre de millisecondes de démarrage, et propose « Retirer le moteur ».
Moteur indisponibleIndique que le moteur n'a pas démarré, avec le message brut, et propose « Réessayer ». Les scripts JavaScript ne sont pas affectés.
Mention hors lignetoujoursUne fois installé, le moteur tourne entièrement hors ligne — aucun script ni aucune donnée n'est envoyé où que ce soit.

Langage mal déclaré

Coller un script Python dans un brouillon resté en JavaScript produisait jusqu'ici une erreur de syntaxe pointant une ligne arbitraire, assortie d'un conseil sur console.log adressé à quelqu'un qui écrit du Python. La page vérifie désormais si le code contredit le langage déclaré et le dit, avec un bouton qui bascule vers le langage détecté.

La vérification est volontairement étroite : elle ne cherche que les marques qui sont des erreurs de syntaxe franches dans l'autre langage, et se tait quand un fichier porte les marques des deux — un script à moitié traduit n'a rien d'utile à dire. Rater une détection ne fait que vous ramener à l'ancien message obscur ; en inventer une vous enverrait changer un langage qui était correct.

Limites et pièges

  • Changer de langage ne traduit pas votre code : il reste exactement tel qu'écrit et ne tournera pas tant que vous ne l'aurez pas réécrit.
  • Les fichiers du moteur sont récupérés depuis le relais du produit, la seule origine distante que la politique de contenu de l'application autorise.
  • La version du moteur est figée et vérifiée face au binaire compilé ; un mélange de versions est refusé plutôt que de produire des plantages illisibles.
  • Le backtest d'une stratégie Python exécute la boucle côté Python plutôt que de franchir la frontière entre langages à chaque barre, et un test de parité compare ses trades à ceux de la boucle JavaScript, barre par barre. print() part dans le journal, préfixé par la barre en cours.

Cette page dans d’autres langues

Questions fréquentes

Faut-il installer Python sur mon ordinateur ?
Non. Le moteur est embarqué et téléchargé une fois par l'application. Il n'utilise pas, et ne demande pas, une installation Python du système.
Quelles bibliothèques sont disponibles ?
La bibliothèque standard, plus numpy, livré dans la version compilée correspondant à l'ABI du moteur. Il n'y a aucun accès réseau depuis le bac à sable : aucun paquet ne peut être récupéré à l'exécution.
Pourquoi mon script Python échoue-t-il sur une erreur de syntaxe à une ligne qui n'existe pas ?
C'est la signature d'un langage mal déclaré : une enveloppe rédigée dans l'autre langage a été ajoutée à votre source. Changez le langage du script et relancez.