نظرة عامة
تُعد مكتبة Bokeh إحدى أقوى أدوات بايثون لبناء رسومات بيانية متطورة، وتتيح واجهة سطر الأوامر (CLI) الخاصة بها مرونة فائقة لإنجاز مهام العرض دون الحاجة لكتابة برمجيات معقدة لكل حالة. يستعرض هذا الدليل العملي كيفية تطويع أوامر Bokeh الأساسية على بيئة Ubuntu، بدءاً من تصدير المخططات كصفحات HTML مستقلة أو هياكل JSON، ووصولاً إلى استضافة لوحات تحكم تفاعلية متكاملة عبر خادم الويب المدمج.
1. تجهيز بيئة العمل واستكشاف إعدادات النظام (bokeh info)
نستهل خطواتنا العملية بتحديث مستودعات الحزم وتثبيت مكتبة Bokeh مع مدير حزم بايثون على بيئة Ubuntu لضمان توفر كافة التبعيات الضرورية.

يُوفر الأمر bokeh info تقريراً شاملاً حول بيئة التشغيل، متضمناً رقم إصدار الحزمة المثبتة، إصدار بايثون النشط، ومكتبات الواجهة الخلفية المدعومة.
⚙️ [أبرز المعاملات والوظائف الأساسية]
info : يعرض ملخصاً تفصيلياً لبيانات التثبيت، والتبعيات البرمجية، ومتغيرات البيئة المحيطة.serve : يُطلق خادم Bokeh المسؤول عن استضافة لوحات التحكم وتطبيقات الويب التفاعلية.html : يُحول سكريبتات بايثون إلى ملفات HTML قائمة بذاتها يمكن تصفحها بسهولة.json : يُفرغ كائنات المخططات وبياناتها في بنية JSON مسلسلة لمعالجتها برمجياً.secret : يُولد مفتاح تشفير عشوائياً لتأمين جلسات الاتصال عبر الخادم.

2. تصدير المخططات إلى صفحات HTML قائمة بذاتها (bokeh html)
لتنظيم ملفات التدريب العملي، ننشئ دليلاً مخصصاً للمشروع في المسار الرئيسي وننتقل مباشرة إليه عبر الأمر mkdir -p ~/bokeh-demo && cd ~/bokeh-demo.

نقوم الآن بصياغة سكريبت بايثون تجريبي باسم plot_sample.py يهدف إلى رسم مخطط نقطي (Scatter plot) تمهيداً لتحويله إلى ملف ويب مستقل.

يتولى الأمر bokeh html plot_sample.py قراءة السكريبت وتحويله إلى مستند HTML ثابت ومتكامل، بحيث يمكن تشغيله واستعراضه في أي متصفح دون الحاجة لوجود بيئة بايثون خلفية.

للتحقق من إتمام عملية التصدير ومطالعة حجم الملف الناتج وبياناته الوصفية، ننفذ الأمر ls -lh plot_sample.html.

3. استخراج هيكل المخطط وبياناته بصيغة JSON المسلسلة (bokeh json)
عند الحاجة لتمرير عناصر الرسم إلى واجهات أمامية أو تطبيقات خارجية تعتمد على مكتبات مثل BokehJS، يمكن تشغيل الأمر bokeh json plot_sample.py > plot_output.json؛ حيث يقوم بتسلسل جميع كائنات التخطيط ومصادر البيانات وحفظها مباشرة داخل ملف JSON منظم.

للتأكد من صحة التنسيق الهيكلي ومراجعة المخطط البياني للبيانات المسلسلة، نستعرض السطور العشرين الأولى عبر الأمر head -n 20 plot_output.json.
تُمكّننا هذه الخطوة من فحص معرّفات النماذج الرئيسية (Model IDs)، وخصائص التصيير، ومصفوفات البيانات للتأكد من اكتمال التصدير دون أخطاء.

4. تشغيل خادم لوحات البيانات التفاعلية الحية (bokeh serve)
لإنشاء تطبيق تفاعلي يستجيب لتحديثات البيانات في الوقت الفعلي، نكتب سكريبت server_app.py، حيث نعتمد على الدالة curdoc().add_root() لربط مخطط الخط البياني بوثيقة الجلسة النشطة كعنصر جذري.

يقوم الأمر timeout 5s bokeh serve server_app.py --port 5006 --allow-websocket-origin="*" بتشغيل خادم Bokeh واستضافة تطبيق بايثون عبر الويب.
يُحدد الخيار --port 5006 منفذ الاستماع المخصص للتطبيق، بينما يمنح الخيار --allow-websocket-origin="*" تصريحاً شاملاً لاتصالات بروتوكول WebSocket لتيسير الوصول من مختلف مصادر الشبكة.

قدم هذا الدليل لمحة تطبيقية شاملة حول كيفية استغلال إمكانيات واجهة سطر أوامر Bokeh CLI المتنوعة ضمن نظام Ubuntu.
يمكنك الآن دمج هذه الأوامر ضمن خطوط المعالجة البرمجية الخاصة بك لبناء ونشر لوحات بيانات وتحليلات بصرية تفاعلية بكل سلاسة وموثوقية.