انتقل إلى المحتوى

Python مع Elide

شغّل Python 3.13 مع Elide بوسائط CPython: تثبيت مكوّن Python، والمكتبة القياسية المضمّنة، والتشغيل البيني مع JavaScript، والقيود المعروفة.

في هذه الصفحة

دعم 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 في الطرفية، ويقرأ الدخل القياسي في غير ذلك.

0:09 / 0:09

تشغّل الأوامر العامة ملفات .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.py

تستورد JavaScript و 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.py

يقرأ Elide المجلد lib/python3.13/site-packages الخاص بالبيئة.

راجع الحزم والبيئات الافتراضية؛ وبالنسبة إلى unittest و pytest، راجع اختبارات Python.

التتبع والمقاييس

تصدّر واجهة opentelemetry البرمجية و logging التتبعات والمقاييس والسجلات عبر Elide، دون تثبيت أي SDK؛ راجع OpenTelemetry في Python.

القيود المعروفة

  • امتدادات C: بعض وحدات امتداد C لا تُحمَّل.
  • macOS: عزل الوحدات الأصلية غير متاح.
  • SIMD في WebAssembly: تثبيت Python يعطّله؛ راجع WebAssembly مع Elide.
  • الاختلافات عن CPython: تتصرف بعض الحالات الحدّية بشكل مختلف عن CPython 3.13؛ راجع مصفوفة التوافق.

أمثلة

هل كانت هذه الصفحة مفيدة؟