La prise en charge de Python est expérimentale dans la version 1.6.0.
Aucune installation de CPython
Elide exécute lui-même Python 3.13 et sa bibliothèque standard.
Ajoutez le composant Python optionnel :
elide setup python--channel=release ou --channel=nightly choisit le canal ; --force le réinstalle. Les installations par apt et RPM
ne peuvent pas l’ajouter ; voir Installation. Sans le composant, les commandes Python affichent
Python support is not installed. Run 'elide setup python' to add it. et se terminent avec le code 2.
Exécuter Python
elide python accepte les mêmes arguments que python :
elide python app.py --name Elide --count 2 # sys.argv: ['app.py', '--name', 'Elide', '--count', '2']
elide python -c 'import sys; print(sys.version)'
elide python -m json.tool input.json
echo 'print("from stdin")' | elide python -Les arguments placés après le script, -c CMD ou -m MODULE sont transmis au programme. elide python seul lance le
REPL dans un terminal ; sinon, il lit l’entrée standard.
Les commandes générales exécutent les fichiers .py avec le même sys.argv :
elide app.py
elide run app.py
elide -l python -s 'print(1 + 1)'Options de l’interpréteur
Placez-les avant le script, -c ou -m. elide --help-all les liste sous “Python interpreter options”.
| Option | Effet |
|---|---|
-c CMD | Exécute CMD comme programme ; les arguments suivants deviennent sys.argv[1:]. |
-m MODULE | Exécute un module de bibliothèque comme __main__. |
-s | N’ajoute pas le répertoire site de l’utilisateur à sys.path. |
-I | Mode isolé. |
-E | Ignore les variables d’environnement PYTHON*. |
-S | N’effectue pas import site au démarrage. |
-P | N’ajoute pas en tête de sys.path un chemin potentiellement dangereux. |
-B | N’écrit pas de fichiers de bytecode. |
-u | Sortie standard et sortie d’erreur sans tampon. |
-O | Niveau d’optimisation ; répétez pour -OO. |
-b | Avertit lors des comparaisons bytes/str ; répétez pour lever des erreurs. |
-W ARG | Contrôle des avertissements ; répétable. |
-x | Accepté pour compatibilité ; sans effet. |
Deux options sont actives par défaut : -S, car Elide construit lui-même sys.path et ignore site pour accélérer le
démarrage, et -B. sys.flags indique les deux. Pour importer site (fichiers .pth, sitecustomize), passez
-X polyglot.python.NoSiteFlag=false ; pour écrire le bytecode, passez
-X polyglot.python.DontWriteBytecodeFlag=false.
Bibliothèque standard
La bibliothèque standard comprend json, pathlib, sqlite3, ssl, zlib et ctypes. bz2 et lzma n’ont pas
besoin de libbz2 ni de liblzma sur le système. Pour les pilotes de base de données inclus dans Elide, voir
Bases de données.
Interopérabilité avec JavaScript
Avec --interop, Python évalue du JavaScript via le module intégré elide :
# sum.py
from elide import js
print(js("[1, 2, 3].reduce((a, b) => a + b, 0)"))elide --interop python sum.pyJavaScript et TypeScript importent l’export par défaut d’un module Python :
// main.mjs
import mod from "./mod.py";
console.log(mod.hello());elide --interop run main.mjsSans --interop, ces appels échouent. Voir Langages et interopérabilité.
Paquets tiers
Elide n’installe pas de paquets PyPI : elide install ignore dependencies.pypi, et
elide install --ecosystems=pypi se termine avec le code 2. Pour charger des paquets depuis un environnement virtuel
Python 3.13, définissez VIRTUAL_ENV :
export VIRTUAL_ENV=/path/to/venv
elide python app.pyElide lit le répertoire lib/python3.13/site-packages de l’environnement.
Voir Paquets et environnements virtuels ; pour unittest et pytest, voir Tests Python.
Traces et métriques
L’API opentelemetry et logging exportent traces, métriques et journaux via Elide, sans SDK à installer ; voir
OpenTelemetry en Python.
Limites connues
- Extensions C : certains modules d’extension C ne se chargent pas.
- macOS : l’isolation des modules natifs n’est pas disponible.
- SIMD WebAssembly : l’installation de Python le désactive ; voir WebAssembly avec Elide.
- Différences avec CPython : certains cas limites se comportent différemment de CPython 3.13 ; voir la Matrice de compatibilité.