Wie Microsoft die halbe Welt vergessen oder Fehlermeldungen gelesen hat


Nein, in diesem Artikel geht es nicht darum, was für ein riesiges und böses Monster Microsoft ist. Und wie sie wieder Benutzer beleidigt. Und wie man den lästigen Fehler behebt, der mit dem letzten Update von Power BI Desktop im August mit aktivierter Python- Unterstützung aufgetreten ist, nämlich Visualisierungsprobleme in lokalisierten Versionen von PBI, insbesondere matplotlib .

In den ersten zehn Augusttagen veröffentlichte Microsoft die lang erwartete und mit Spannung erwartete Veröffentlichung seines wirklich bemerkenswerten Python- fähigen BI-Produkts. Zum Zeitpunkt des Schreibens befindet sich diese Funktionalität im Abschnitt mit den vorläufigen Funktionen (d. H. Nur eine Beta-Version).

Ich habe Power BI lange Zeit und mit Vergnügen in meiner Arbeit verwendet (sowohl als Datenanalyst als auch als BI-Entwickler). Ich versuche immer, neue Funktionen auszuprobieren, die im Abschnitt vor der Veröffentlichung großzügig angekündigt werden. Und wir müssen dem Microsoft-Entwicklungsteam Tribut zollen. Dies sind fast immer solide, funktionsfähige Versionen von Funktionen, Optionen und Visualisierungen.
Die BI-Community erwartete insbesondere die Aufnahme von Python-Unterstützung in Power BI. Nicht, dass die integrierte Funktionalität von Power BI nicht ausreichte, um die kompliziertesten Aufgaben zu implementieren, die von BI-Systemen gelöst wurden. Mit rund 250 Funktionen der integrierten DAX- Abfragesprache und sogar mehr als siebenhundert Funktionen von Power Query konnten nahezu alle BI-Aufgaben gelöst werden, indem Daten aus einer Vielzahl von Quellen abgerufen, ein Datenmodell erstellt und Visualisierungen und Berichte unterstützt wurden. Letztes Jahr wurde die Unterstützung für die R-Sprache hinzugefügt, wodurch die Funktionen von Power BI in Bezug auf die Durchführung wissenschaftlicher Berechnungen, neuer Visualisierungen und sogar des maschinellen Lernens dramatisch erweitert wurden.
Es ist jedoch kein Geheimnis, dass Python heute in der Data Science-Umgebung unter den Programmiersprachen führend ist. Durch die Aufnahme dieser Sprache in das Microsoft BI-Ökosystem wird Power BI zu einer Art Schweizer Messer für die Aufbereitung, Analyse und endgültige Präsentation von Daten. Mit voller Unterstützung für vier Spezialsprachen (DAX, Power Query / M, R, Python) und eingeschränkt innerhalb der erforderlichen Funktionen von SQL und MDX. Einige Geeks schrauben auch JavaScript, aber dies ist eine separate Konversation.

Als nicht praktizierender Python-Entwickler habe ich Python gerne experimentell unterstützt, um neue, sich öffnende Horizonte zu testen. Ich habe das Menü der neuesten PBI-Version überprüft und die Anwendung neu geladen. Weitere Informationen zum Verbinden und Konfigurieren finden Sie im Microsoft-Blog .

Ich hatte bereits eine frühere Version von Python installiert und entschied mich, das Risiko einzugehen und mich nicht mit der Installation einer neuen zu beschäftigen. Infolgedessen wurde in den Datenquellen ein neuer Konnektor angezeigt - "Pyton Script" und ein neues [ Py ] -Symbol im Visualisierungsbereich.

Zu diesem Zeitpunkt wurde der Python-Code jedoch nicht ausgeführt. Ich werde nicht alle Wechselfälle beschreiben, die mit dem Versuch verbunden sind, unbekanntes (fast) Python in einer mir und Power BI vertrauten Umgebung auszuführen.
Visualisierungsprobleme

Wie dem auch sei, selbst eine Neuinstallation der Anaconda-Baugruppe mit einer großen Anzahl vorinstallierter Bibliotheken, einem erweiterten Paketmanager usw. hat mich praktisch nicht zu den geschätzten „Bildern“ geführt. Verschiedene Versionen von Python gaben meinem Testcode unterschiedliche Fehlermeldungen, und ich war ein wenig entmutigt. Eine Google-Suche in diesen Posts lieferte ebenfalls keine angemessenen Ergebnisse. Kürzlich erschien auf dem Portal in der Power BI-Community ( https://community.powerbi.com ) eine Anfrage eines dänischen Benutzers nach einem ähnlichen Problem, die zu einem langwierigen Gedanken führte - es geht nicht um meine Computerkonfiguration mit einer rasselnden Mischung installierter Software (ich habe verschiedene überprüft) Autos, aber überall sind sie - explosive Mischung, nur anders). Der Punkt ist die Lokalisierung.
Als klar wurde, in welche Richtung man schauen sollte, stießen vernünftigere Antworten von Suchmaschinen auf verfeinerte Fragen. Der Punkt war jedoch überall der gleiche: „In der aktuellen Version von Power BI können Sie das Format von Zahlen nicht mit einem Dezimalpunkt verwenden, sondern nur mit einem Dezimalpunkt zusammen mit Python. Warten Sie auf die aktualisierte Version oder ändern Sie das Format der Darstellung von Zahlen. "

In Power BI können Sie das Zahlenformat in wenigen Sekunden über das Menü ändern. Was tun mit Tonnen von vorgefertigten Berichten und Quelldaten? Das Schaffell war die Mühe eindeutig nicht wert.

PBI Python eingerichtet

Zu diesem Zeitpunkt wurden alle betroffenen "Pythons unter der Macht bi" in zwei Lager aufgeteilt: die Amerikaner und die Engländer mit einem Dezimalpunkt und alle anderen. Ein Teil des „verbleibenden Überbordes der aktuellen Version“ ging hastig in die erste Gruppe über und setzte einen Punkt als Standardtrennzeichen. Der Rest der Ponura begann auf die korrigierte Freisetzung zu warten. Aber seitdem Dies ist eine Beta-Version, und die Übersetzung in die Produktfunktionalität kann zweieinhalb Monate dauern. Es hat sich definitiv nicht gelohnt, von Tag zu Tag auf Korrekturen zu warten.

Und in diesem Moment habe ich beschlossen, mir die Fehlermeldung genauer anzusehen:

Fehler

Genauer gesagt , weil der Fehler nicht mit meinem Code zusammenhängt, der in Jypyter nur fehlerfrei ausgeführt wurde und alle visuellen Elemente ohne Probleme anzeigte . Das Problem wurde durch zusätzlichen Code verursacht, den Microsoft implementiert hatte, um Python in Power BI zu integrieren. Mit dem Aufruf der matplotlib-Bibliothek ( https://ru.wikipedia.org/wiki/Matplotlib ) und speziell der Pyplot-Funktion (pyplot.py-Datei).

Aber dafür und Open-Source-Software, um seine verspielten kleinen Hände hinein zu führen. Ohne nachzudenken, als ich einen Funktionscode von 130 Kilobyte an der im Fehlertext angegebenen Adresse öffnete, stellte ich fest, dass bei der Initialisierung von figManager ein Fehler auftritt.

Im Quellcode der Bibliothek sieht dieser Python-Code folgendermaßen aus:

figManager = new_figure_manager(num, figsize=figsize, dpi=dpi, facecolor=facecolor, edgecolor=edgecolor, frameon=frameon, FigureClass=FigureClass, **kwargs) 

In Anbetracht einer so wichtigen Bibliothek habe ich gerade den Code zum Aufrufen des Parameters problem figsize auskommentiert , an den Microsoft vier Argumente aus Poiwer BI anstelle von zwei in lokalisierten Versionen übergibt, und die Standardvisualisierungsgröße an diesen Parameter übergeben.

Jetzt sieht dieser Code so aus:

 figManager = new_figure_manager(num, figsize=rcParams['figure.figsize'], #figsize=figsize, dpi=dpi, facecolor=facecolor, edgecolor=edgecolor, frameon=frameon, FigureClass=FigureClass, **kwargs) 

In der aktuellen Anaconda-Baugruppe sind dies 542-549 Zeilen. Wenn Sie eine andere Version der Bibliothek haben, suchen Sie einfach nach dem Eintrag „figManager“, nehmen Sie die erforderlichen Änderungen vor und speichern Sie die korrigierte Bibliothek unter demselben Namen (hierfür benötigen Sie Administratorrechte).

Starten Sie danach einfach den Visualisierungscode zur Ausführung neu und genießen Sie das Ergebnis ... Oder warten Sie, bis der Berg zu Mohammed oder Microsoft zu Python kommt.

Ergebnis

Yuri Kolmakov ( McCow )

Source: https://habr.com/ru/post/de421659/


All Articles