Saltar al contenido

Python con Elide

Ejecute Python 3.13 con Elide y los argumentos de CPython: instalación del componente de Python, biblioteca estándar incluida, interoperabilidad con JavaScript y limitaciones conocidas.

En esta página

La compatibilidad con Python es experimental en la versión 1.6.0.

Sin instalar CPython

Elide ejecuta Python 3.13 y su biblioteca estándar por sí mismo.

Añada el componente opcional de Python:

elide setup python

--channel=release o --channel=nightly elige el canal; --force lo reinstala. Las instalaciones con apt y RPM no pueden añadirlo; consulte Instalación. Sin el componente, los comandos de Python imprimen Python support is not installed. Run 'elide setup python' to add it. y terminan con el código 2.

Ejecutar Python

elide python acepta los mismos argumentos 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 -

Los argumentos que siguen al script, a -c CMD o a -m MODULE pasan al programa. elide python sin argumentos abre el REPL en una terminal y, en otro caso, lee la entrada estándar.

0:09 / 0:09

Los comandos generales ejecutan archivos .py con el mismo sys.argv:

elide app.py
elide run app.py
elide -l python -s 'print(1 + 1)'

Opciones del intérprete

Póngalas antes del script, de -c o de -m. elide --help-all las lista en “Python interpreter options”.

OpciónEfecto
-c CMDEjecuta CMD como programa; los argumentos siguientes pasan a sys.argv[1:].
-m MODULEEjecuta un módulo de biblioteca como __main__.
-sNo añade el directorio site del usuario a sys.path.
-IModo aislado.
-EIgnora las variables de entorno PYTHON*.
-SNo ejecuta import site al iniciar.
-PNo antepone a sys.path una ruta potencialmente insegura.
-BNo escribe archivos de bytecode.
-uSalida estándar y de error sin búfer.
-ONivel de optimización; repítala para -OO.
-bAvisa en las comparaciones bytes/str; repítala para lanzar errores.
-W ARGControl de advertencias; puede repetirse.
-xSe acepta por compatibilidad; no tiene efecto.

Dos opciones están activas por defecto: -S, porque Elide construye sys.path por sí mismo y omite site para acelerar el inicio, y -B. sys.flags informa de ambas. Para importar site (archivos .pth, sitecustomize), pase -X polyglot.python.NoSiteFlag=false; para escribir bytecode, pase -X polyglot.python.DontWriteBytecodeFlag=false.

Biblioteca estándar

La biblioteca estándar incluye json, pathlib, sqlite3, ssl, zlib y ctypes. bz2 y lzma no necesitan libbz2 ni liblzma del sistema. Para los controladores de bases de datos que incluye Elide, consulte Bases de datos.

Interoperabilidad con JavaScript

Con --interop, Python evalúa JavaScript mediante el módulo integrado elide:

# sum.py
from elide import js

print(js("[1, 2, 3].reduce((a, b) => a + b, 0)"))
elide --interop python sum.py

JavaScript y TypeScript importan la exportación por defecto de un módulo de Python:

// main.mjs
import mod from "./mod.py";
console.log(mod.hello());
elide --interop run main.mjs

Sin --interop, estas llamadas fallan. Consulte Lenguajes e interoperabilidad.

Paquetes de terceros

Elide no instala paquetes de PyPI: elide install omite dependencies.pypi, y elide install --ecosystems=pypi termina con el código 2. Para cargar paquetes desde un entorno virtual de Python 3.13, defina VIRTUAL_ENV:

export VIRTUAL_ENV=/path/to/venv
elide python app.py

Elide lee el directorio lib/python3.13/site-packages del entorno.

Consulte Paquetes y entornos virtuales; para unittest y pytest, consulte Pruebas de Python.

Trazas y métricas

La API de opentelemetry y logging exportan trazas, métricas y registros a través de Elide, sin instalar ningún SDK; consulte OpenTelemetry en Python.

Limitaciones conocidas

  • Extensiones en C: algunos módulos de extensión en C no se cargan.
  • macOS: el aislamiento de módulos nativos no está disponible.
  • SIMD de WebAssembly: instalar Python lo desactiva; consulte WebAssembly con Elide.
  • Diferencias con CPython: algunos casos límite se comportan de forma distinta a CPython 3.13; consulte la Matriz de compatibilidad.

Ejemplos

¿Te resultó útil esta página?