لا ، هذه المقالة ليست حول ما هو مايكروسوفت الوحش الضخم والشر. وكيف تسيء مرة أخرى إلى المستخدمين. وحول كيفية إصلاح الخلل المزعج الذي ظهر مع تحديث أغسطس الماضي من
Power BI Desktop مع تمكين دعم
Python ، أي مشاكل التصور في الإصدارات المحلية من PBI ، ولا سيما
matplotlib .
في الأيام العشرة الأولى من شهر أغسطس ، أصدرت Microsoft الإصدار الذي طال انتظاره والذي طال انتظاره من منتج BI المذهل الذي تم تمكينه حقًا. في وقت كتابة هذا التقرير ، كانت هذه الوظيفة في قسم الميزات الأولية (أي مجرد إصدار تجريبي).
لفترة طويلة وبسرور كنت أستخدم Power BI في عملي (كمحلل بيانات ومطور BI). أحاول دائمًا تجربة الميزات الجديدة التي تم الإعلان عنها بسخاء في قسم الإصدار التجريبي. ويجب أن نشيد بفريق تطوير Microsoft ، فهذه دائمًا إصدارات قوية وعملية من الميزات والخيارات والمرئيات.
توقع مجتمع BI بشكل خاص إدراج دعم Python في Power BI. لا يعني ذلك أن الوظيفة المضمنة في Power BI لم تكن كافية لتنفيذ المهام الأكثر تعقيدًا التي تم حلها بواسطة أنظمة BI. أتاحت حوالي 250 وظيفة من لغة استعلام
DAX المضمنة وحتى أكثر من سبعمائة وظيفة من Power Query حل أي مهمة BI تقريبًا ، من الحصول على البيانات من مجموعة متنوعة من المصادر ، وبناء نموذج بيانات ودعم التصورات والتقارير. في العام الماضي ، تمت إضافة دعم للغة R ، مما وسع بشكل كبير قدرات Power BI من حيث إجراء الحسابات العلمية ، والمرئيات الجديدة ، وحتى التعلم الآلي.
ومع ذلك ، ليس سراً أن بايثون هي الرائدة في بيئة علوم البيانات بين لغات البرمجة اليوم. وإدراج هذه اللغة في نظام Microsoft BI البيئي يحول Power BI إلى نوع من السكين السويسري لإعداد البيانات وتحليلها وعرضها النهائي. مع دعم كامل لأربع لغات متخصصة (DAX و Power Query / M و R و Python) ومحدودة ضمن الوظائف الضرورية لـ SQL و MDX. يقوم بعض المهوسين أيضًا بلف جافا سكريبت ، ولكن هذه محادثة منفصلة.
بصفتي مطور Python غير ممارس ، أدرجت بفارغ الصبر الدعم التجريبي لـ Python لاختبار آفاق جديدة وفتحة. راجعت قائمة أحدث إصدار من PBI وأعدت تحميل التطبيق. اقرأ المزيد حول الاتصال والتكوين
على مدونة Microsoft .
كان لدي بالفعل إصدار سابق من Python مثبتًا وقررت أن أغتنم الفرصة ولا أكترث بتثبيت إصدار جديد. ونتيجة لذلك ، ظهر موصل جديد في مصادر البيانات - "Pyton Script" ، وأيقونة [
Py ] جديدة في لوحة التصور.
ومع ذلك ، في هذه المرحلة لم يتم تنفيذ كود Python. لن أصف جميع التقلبات المرتبطة بمحاولة تشغيل Python غير مألوفة (تقريبًا) في بيئة مألوفة لي و Power BI.
مع ذلك ، حتى التثبيت النظيف لجمعية أناكوندا مع عدد كبير من المكتبات المثبتة مسبقًا ، ومدير حزم متقدم ، وما إلى ذلك عمليا لم يدفعني إلى "الصور" العزيزة. أعطت الإصدارات المختلفة من Python رسائل خطأ مختلفة إلى رمز الاختبار الخاص بي ، وكنت محبطًا قليلاً. البحث في Google على هذه المنشورات لم يُظهر أيضًا نتائج كافية. ظهر مؤخرًا على البوابة ، في مجتمع Power BI (
https://community.powerbi.com ) ، طلب من مستخدم دنماركي حول مشكلة مشابهة أدى إلى فكر طويل النضج - لا يتعلق الأمر بتكوين جهاز الكمبيوتر الخاص بي بمزيج قعقعة من البرامج المثبتة (راجعت على مختلف السيارات ، ولكن في كل مكان - خليط متفجر ، مختلف فقط). النقطة هي التوطين.
عندما أصبح من الواضح أي طريقة للبحث ، بدأت إجابات أكثر عقلانية من محركات البحث في العثور على استفسارات مصقولة. لكن النقطة كانت نفسها في كل مكان: "في الإصدار الحالي من Power BI ، لا يمكنك استخدام تنسيق الأرقام ذات الفاصلة العشرية ، ولكن فقط مع الفاصلة العشرية ، مع Python. انتظر الإصدار المحدث أو قم بتغيير تنسيق تمثيل الأرقام. "
في Power BI ، يمكنك تغيير تنسيق الأرقام في بضع ثوانٍ من خلال القائمة ، ولكن ماذا تفعل بأطنان من التقارير الجاهزة وبيانات المصدر؟ من الواضح أن جلد الغنم لم يكن يستحق هذا الجهد.
عند هذه النقطة ، تم تقسيم جميع "الثعابين الموبوءة تحت السلطة الثنائية" إلى معسكرين: الأمريكيين والإنجليز بعلامة عشرية وكل البقية. عبر جزء من "الجزء المتبقي من النسخة الحالية" على عجل إلى المجموعة الأولى ، ووضع نقطة كفاصل قياسي. بدأت بقية البونورا تنتظر الإصدار المصحح. لكن منذ ذلك الحين هذه نسخة تجريبية وقد تستغرق الترجمة إلى وظائف المنتج شهرين ونصف سنة ، ومن المؤكد أنه لا يستحق انتظار التصحيحات من يوم لآخر.
وفي تلك اللحظة قررت أن ألقي نظرة فاحصة على رسالة الخطأ:
عن كثب ، لأن الخطأ لم يكن مرتبطًا
بشفرتي ، التي
تم تنفيذها في
Jypyter فقط بدون أخطاء وعرض جميع العناصر المرئية دون أي مشاكل. سبب المشكلة رمز إضافي قامت Microsoft بتطبيقه لدمج Python مع Power BI. بالتحديد ، مع استدعاء مكتبة matplotlib (
https://ru.wikipedia.org/wiki/Matplotlib ) وتحديدًا وظيفة pyplot (ملف pyplot.py).
ولكن لذلك ، والبرمجيات مفتوحة المصدر لتشغيل يديه الصغيرة المرحة فيه. دون التفكير مرتين ، وفتح كود وظيفة مائة وثلاثين كيلو بايت على العنوان الوارد في نص الخطأ ، اكتشفت أن الفشل يحدث عند تهيئة figManager.
في شفرة مصدر المكتبة ، يبدو رمز Python هذا كما يلي:
figManager = new_figure_manager(num, figsize=figsize, dpi=dpi, facecolor=facecolor, edgecolor=edgecolor, frameon=frameon, FigureClass=FigureClass, **kwargs)
فيما يتعلق بمثل هذه المكتبة المهمة ، لقد علقت للتو على رمز استدعاء معلمة
figsize المشكلة ، والتي تقوم Microsoft بتمرير أربع وسائط من Poiwer BI بدلاً من اثنتين في الإصدارات المترجمة ، وتمرير حجم التصور الافتراضي إلى هذه المعلمة.
الآن يبدو هذا الرمز كما يلي:
figManager = new_figure_manager(num, figsize=rcParams['figure.figsize'],
في تجميع Anaconda الحالي ، هذه خطوط 542-549. إذا كان لديك إصدار مختلف من المكتبة ، فما عليك سوى البحث عن الإدخال "figManager" وإجراء التغييرات اللازمة وحفظ المكتبة المصححة تحت نفس الاسم (لهذا ستحتاج إلى حقوق المسؤول).
بعد ذلك ، ما عليك سوى إعادة تشغيل رمز التصور للتنفيذ والاستمتاع بالنتيجة ... حسنًا ، أو انتظر حتى يأتي الجبل إلى محمد ، أو بالأحرى Microsoft إلى Python.
يوري
كولماكوف (
مكاو )