Noyaux isolés#
Utilisateurs de Capytale
Si vous utilisez Basthon dans Capytale, vous devriez consulter la documentation de Capytale sur les noyaux isolés.
Depuis mai 2026, les noyaux de Basthon sont isolés. Cela signifie que le code est exécuté dans un environnement séparé de celui qui exécute et rend la page web. Ceci permet :
une sécurité accrue : le code exécuté n’a pas accès aux données d’authentifications de l’utilisateur sur Capytale et il ne peut donc pas faire des requêtes sur le serveur à son insu ;
une parallélisation : l’exécution d’un long calcul ne bloque pas la page, le noyau peut être interrompu ;
un rendu plus fluide : les interactions avec l’utilisateur (
printetinputen Python) sont affichées en temps réel ;mais avec quelques limitations : par exemple, certaines fonctionnalités du module
p5en Python ne sont pas encore disponibles (voir ci-dessous).
Quels noyaux sont isolés ?#
Tous : Python, OCaml, JS, SQL, XCAS et C.
Cas particulier de l’utilisation du module p5#
Le module p5 fonctionne avec les noyaux isolés. Le dessin est calculé
dans le noyau puis affiché dans un cadre isolé de la page, qui transmet au
noyau les interactions (souris, clavier, écran tactile).
Quelques différences sont à connaître :
pour que le dessin réagisse au clavier, il faut d’abord cliquer dessus (un contour coloré indique qu’il reçoit les touches) ;
loadImagecharge les images du système de fichiers local : fichiers ouverts dans Basthon, créés par Python ou, pour les exemples de la galerie, fichiers auxiliaires. Un chemin relatif (loadImage("image.png")) désigne un fichier de ce système de fichiers ;les éléments HTML (
createButton,createSlider,createInput,createSelect,createCheckbox,createRadio,createP…) sont affichés sous le dessin (ou à la position donnée parposition(x, y), relative au coin supérieur gauche du dessin) mais leur taille et leur position effectives ne peuvent pas être lues (size()etposition()sans argument renvoient 0) ;certaines fonctionnalités ne sont pas encore disponibles : la vidéo et la webcam (
createCapture,createVideo…), le son (p5.sound) et le chargement de bibliothèques (load_library).
Pour utiliser ces fonctionnalités, reportez-vous à la section Comment retrouver les noyaux non isolés ?.
Cas particulier de l’utilisation du module matplotlib#
Le module matplotlib fonctionne avec les noyaux isolés, figures
interactives comprises. La figure est calculée dans le noyau puis affichée
dans un cadre isolé de la page : affichage des coordonnées sous la souris,
zoom, déplacement, historique des vues, événements souris et clavier
(mpl_connect), animations et export de la figure (PNG, SVG, PDF…) via le
bouton de téléchargement après avoir choisi le format.
Comme pour p5, pour que la figure réagisse au clavier, il faut d’abord
cliquer dessus.
Comment retrouver les noyaux non isolés ?#
Ces noyaux sont dits legacy. Il suffit d’ajouter le suffix
-legacyau paramètre d’URLkernel=. Ainsi, par exemple, https://console.basthon.fr/?kernel=python3-legacy permet d’utiliser le noyau Python non isolé.Seul le noyau Python dispose d’un mode legacy, conservé pour les fonctionnalités historiques de
p5etmatplotlib. Les noyaux OCaml, JS, SQL, XCAS et C n’existent qu’en version isolée.