محرر بايثون (تشغيل في المتصفح)
اكتب بايثون حقيقية وشغّلها في متصفحك — بلا تثبيت، بلا خادم، بلا حساب. مدعوم بـ Pyodide، وهو إصدار كامل من CPython مُجمَّع إلى WebAssembly.
1,165 مشاهدة
كيف يعمل
يُشغّل هذا مفسّرًا حقيقيًا للغة CPython — التطبيق المرجعي ذاته الذي يُبنى منه أمر python3 على جهاز سطح المكتب — مُجمَّعًا إلى WebAssembly عبر Pyodide، يُحمَّل مرة واحدة في متصفحك ويعمل بالكامل على جهازك. كودك لا يصل أبدًا إلى خادم هذا الموقع؛ لا توجد عملية فرعية معزولة على خادم خلفي، ولا مهمة في طابور انتظار، ولا شيء لرفعه. يُنزّل التشغيل الأول بيئة تشغيل بايثون (نحو 12 ميغابايت)، يخزّنها متصفحك مؤقتًا بعد ذلك، لذا يبدأ كل تشغيل لاحق — وكل تشغيل في زيارة لاحقة — فورًا بدلاً من إعادة تنزيل أي شيء.
بما أنها CPython حقيقية وليست مجموعة فرعية محاكاة، تنطبق دلالات بايثون الفعلية تمامًا كما تنطبق محليًا. يشمل ذلك قاعدتها النحوية المميزة: تحدد بايثون بنية الكتل — أين يبدأ وينتهي جسم دالة، أو حلقة تكرار، أو فرع شرطي — اعتمادًا فقط على مستوى المسافة البادئة، خلافًا لـ C أو Java أو JavaScript التي تستخدم أقواسًا معقوفة {} للغرض نفسه. خلط علامات التبويب (tabs) والمسافات داخل كتلة واحدة هو بالضبط النوع من الأمور الذي سيرفضه هذا المفسّر الحقيقي بخطأ IndentationError بدلاً من التخمين بصمت، لأن بايثون 3 يرفض تشغيل كود مسافته البادئة غامضة.
معلومة مفيدة
تأتي مكتبة بايثون القياسية الكاملة مع بيئة التشغيل — math وjson وre وdatetime وغيرها — لذا فإن كل ما يحتاج فقط إلى المكتبة القياسية يعمل دون تعديل. حزم الطرف الثالث من PyPI مسألة مختلفة: فهي غير محمّلة مسبقًا، لأن تضمينها سيُضخّم التنزيل الأولي لكل زائر بغض النظر عن حاجته إليها.
الأسئلة الشائعة
لماذا يستغرق التشغيل الأول بضع ثوانٍ؟
يقوم متصفحك بتنزيل بيئة تشغيل بايثون بصيغة WebAssembly وتهيئتها في المرة الأولى فقط — بعد ذلك تُخزَّن مؤقتًا، وتبدأ الزيارات اللاحقة (والتشغيلات اللاحقة على الصفحة ذاتها) فورًا.
هل يمكنني تثبيت حزم مثل numpy أو requests؟
تُشغّل هذه الأداة المكتبة القياسية فقط. يدعم Pyodide تثبيت حزم بايثون الخالصة عبر micropip، لكن ذلك يضيف خطوة تنزيل إضافية ويخرج عن نطاق هذه الأداة الخفيفة — لهذا الغرض استخدم وحدة تحكم Pyodide مباشرة.
هل يعمل الكود الخاص بي على خادمكم؟
لا — لا يُرفع أي شيء إلى أي مكان. يعمل مفسّر بايثون كـ WebAssembly داخل علامة تبويب متصفحك، تمامًا مثل أي جافاسكريبت آخر في هذه الصفحة.
لماذا أحصل على IndentationError عند خلط علامات التبويب والمسافات؟
لا تملك بايثون أقواسًا معقوفة لتحديد أين تبدأ الكتلة أو تنتهي — مستوى المسافة البادئة نفسه هو بنية الكتلة. يرفض بايثون 3 عمدًا تشغيل ملف تُخلط فيه علامات التبويب والمسافات بشكل غير متسق بين الأسطر، بدلاً من تخمين ما قصدته، ولهذا يُطلق هذا المفسّر البايثوني الحقيقي خطأ IndentationError بدلاً من إساءة تفسير كودك بصمت.
هل هذه بايثون حقيقية فعلاً، أم إعادة تنفيذ محدودة بجافاسكريبت؟
إنها CPython حقيقية — المفسّر نفسه المبني بلغة C الذي يُشغّل بايثون على الخوادم وأجهزة سطح المكتب — أُعيد تجميعها إلى WebAssembly لتتمكن من العمل داخل بيئة معزولة في المتصفح. سلوك اللغة ورسائل الأخطاء والمكتبة القياسية كلها تطابق تثبيتًا محليًا عاديًا.
أدوات مشابهة
الإبلاغ عن مشكلة
محرر بايثون (تشغيل في المتصفح)
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!