Підтримка Python у версії 1.6.0 експериментальна.
CPython встановлювати не потрібно
Elide сам виконує Python 3.13 і його стандартну бібліотеку.
Додайте необов’язковий компонент Python:
elide setup python--channel=release або --channel=nightly вибирає канал; --force перевстановлює компонент. Під час встановлення
через apt і RPM його додати не можна; див. Встановлення. Без компонента команди Python виводять
Python support is not installed. Run 'elide setup python' to add it. і завершуються з кодом 2.
Запуск Python
elide python приймає ті самі аргументи, що й 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 -Аргументи після скрипта, -c CMD або -m MODULE передаються програмі. elide python без аргументів запускає REPL у
терміналі, а в інших випадках читає стандартний ввід.
Загальні команди запускають файли .py з тим самим sys.argv:
elide app.py
elide run app.py
elide -l python -s 'print(1 + 1)'Параметри інтерпретатора
Вказуйте їх перед скриптом, -c або -m. elide --help-all перелічує їх у розділі “Python interpreter options”.
| Прапорець | Дія |
|---|---|
-c CMD | Виконати CMD як програму; наступні аргументи потрапляють у sys.argv[1:]. |
-m MODULE | Запустити модуль бібліотеки як __main__. |
-s | Не додавати користувацький каталог site до sys.path. |
-I | Ізольований режим. |
-E | Ігнорувати змінні оточення PYTHON*. |
-S | Не виконувати import site під час запуску. |
-P | Не додавати на початок sys.path потенційно небезпечний шлях. |
-B | Не записувати файли байт-коду. |
-u | Небуферизовані стандартний вивід і потік помилок. |
-O | Рівень оптимізації; повторіть для -OO. |
-b | Попереджати під час порівняння bytes/str; повторіть, щоб викидати помилки. |
-W ARG | Керування попередженнями; можна повторювати. |
-x | Приймається для сумісності; ні на що не впливає. |
Два прапорці ввімкнено за замовчуванням: -S, бо Elide сам формує sys.path і пропускає site заради швидкості
запуску, і -B. sys.flags повідомляє про обидва. Щоб імпортувати site (файли .pth, sitecustomize), передайте
-X polyglot.python.NoSiteFlag=false; щоб записувати байт-код, передайте
-X polyglot.python.DontWriteBytecodeFlag=false.
Стандартна бібліотека
Стандартна бібліотека містить json, pathlib, sqlite3, ssl, zlib і ctypes. Для bz2 і lzma не потрібні
системні libbz2 і liblzma. Про драйвери баз даних, що входять до Elide, див. Бази даних.
Взаємодія з JavaScript
З прапорцем --interop Python виконує JavaScript через вбудований модуль elide:
# sum.py
from elide import js
print(js("[1, 2, 3].reduce((a, b) => a + b, 0)"))elide --interop python sum.pyJavaScript і TypeScript імпортують експорт за замовчуванням модуля Python:
// main.mjs
import mod from "./mod.py";
console.log(mod.hello());elide --interop run main.mjsБез --interop ці виклики завершуються помилкою. Див. Мови та взаємодія.
Сторонні пакети
Elide не встановлює пакети з PyPI: elide install пропускає dependencies.pypi, а
elide install --ecosystems=pypi завершується з кодом 2. Щоб завантажувати пакети з віртуального середовища
Python 3.13, задайте VIRTUAL_ENV:
export VIRTUAL_ENV=/path/to/venv
elide python app.pyElide читає каталог lib/python3.13/site-packages цього середовища.
Див. Пакети та віртуальні середовища; про unittest і pytest див. Тести Python.
Трасування та метрики
API opentelemetry і logging експортують трасування, метрики та журнали через Elide без встановлення SDK; див.
OpenTelemetry у Python.
Відомі обмеження
- Розширення на C: деякі модулі розширень на C не завантажуються.
- macOS: ізоляція нативних модулів недоступна.
- SIMD у WebAssembly: встановлення Python його вимикає; див. WebAssembly в Elide.
- Відмінності від CPython: деякі граничні випадки поводяться інакше, ніж у CPython 3.13; див. Матриця сумісності.