Die Python-Unterstützung ist in 1.6.0 experimentell.
Keine CPython-Installation
Elide führt Python 3.13 und seine Standardbibliothek selbst aus.
Fügen Sie die optionale Python-Komponente hinzu:
elide setup python--channel=release oder --channel=nightly wählt den Kanal; --force installiert neu. Installationen über apt und
RPM können sie nicht hinzufügen; siehe Installation. Ohne die Komponente geben Python-Befehle
Python support is not installed. Run 'elide setup python' to add it. aus und beenden sich mit 2.
Python ausführen
elide python nimmt dieselben Argumente wie 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 -Argumente nach dem Skript, nach -c CMD oder -m MODULE gehen an das Programm. Ein bloßes elide python startet in
einem Terminal die REPL und liest andernfalls von der Standardeingabe.
Die allgemeinen Befehle führen .py-Dateien mit demselben sys.argv aus:
elide app.py
elide run app.py
elide -l python -s 'print(1 + 1)'Interpreter-Optionen
Setzen Sie diese vor das Skript, -c oder -m. elide --help-all listet sie unter “Python interpreter options” auf.
| Flag | Wirkung |
|---|---|
-c CMD | CMD als Programm ausführen; nachfolgende Argumente werden zu sys.argv[1:]. |
-m MODULE | Ein Bibliotheksmodul als __main__ ausführen. |
-s | Das Site-Verzeichnis des Benutzers nicht zu sys.path hinzufügen. |
-I | Isolierter Modus. |
-E | PYTHON*-Umgebungsvariablen ignorieren. |
-S | Beim Start kein import site. |
-P | Keinen potenziell unsicheren Pfad vor sys.path stellen. |
-B | Keine Bytecode-Dateien schreiben. |
-u | Ungepufferte Standardausgabe und Standardfehlerausgabe. |
-O | Optimierungsstufe; für -OO wiederholen. |
-b | Bei bytes/str-Vergleichen warnen; wiederholen, um Fehler auszulösen. |
-W ARG | Warnungssteuerung; wiederholbar. |
-x | Aus Kompatibilitätsgründen akzeptiert; ohne Wirkung. |
Zwei Flags sind standardmäßig aktiv: -S, weil Elide sys.path selbst aufbaut und site für die Startzeit
überspringt, und -B. sys.flags meldet beide. Um site zu importieren (.pth-Dateien, sitecustomize), übergeben
Sie -X polyglot.python.NoSiteFlag=false; um Bytecode zu schreiben, übergeben Sie
-X polyglot.python.DontWriteBytecodeFlag=false.
Standardbibliothek
Die Standardbibliothek enthält json, pathlib, sqlite3, ssl, zlib und ctypes. bz2 und lzma brauchen
kein libbz2 oder liblzma vom System. Zu den Datenbanktreibern, die Elide mitbringt, siehe
Datenbanken.
Interop mit JavaScript
Mit --interop wertet Python JavaScript über das eingebaute Modul elide aus:
# sum.py
from elide import js
print(js("[1, 2, 3].reduce((a, b) => a + b, 0)"))elide --interop python sum.pyJavaScript und TypeScript importieren den Default-Export eines Python-Moduls:
// main.mjs
import mod from "./mod.py";
console.log(mod.hello());elide --interop run main.mjsOhne --interop schlagen diese Aufrufe fehl. Siehe Sprachen und Interop.
Pakete von Drittanbietern
Elide installiert keine PyPI-Pakete: elide install überspringt dependencies.pypi, und
elide install --ecosystems=pypi beendet sich mit 2. Um Pakete aus einer virtuellen Umgebung für Python 3.13 zu
laden, setzen Sie VIRTUAL_ENV:
export VIRTUAL_ENV=/path/to/venv
elide python app.pyElide liest das Verzeichnis lib/python3.13/site-packages der Umgebung.
Siehe Pakete und virtuelle Umgebungen; zu unittest und pytest siehe Python-Tests.
Tracing und Metriken
Die opentelemetry-API und logging exportieren Traces, Metriken und Logs über Elide, ohne installiertes SDK; siehe
OpenTelemetry in Python.
Bekannte Einschränkungen
- C-Erweiterungen: Manche C-Erweiterungsmodule lassen sich nicht laden.
- macOS: Die Isolierung nativer Module ist nicht verfügbar.
- WebAssembly-SIMD: Die Installation von Python deaktiviert SIMD; siehe WebAssembly mit Elide.
- Unterschiede zu CPython: Manche Randfälle verhalten sich anders als in CPython 3.13; siehe die Kompatibilitätsmatrix.