Поддержка 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; см. Матрица совместимости.