No, este artículo no trata sobre qué monstruo enorme y malvado es Microsoft. Y cómo vuelve a ofender a los usuarios. Y sobre cómo solucionar la molesta falla que apareció con la última actualización de agosto de
Power BI Desktop con el soporte de
Python habilitado, es decir, problemas de visualización en versiones localizadas de PBI, en particular
matplotlib .
En los primeros diez días de agosto, Microsoft lanzó el tan esperado y esperado lanzamiento de su producto de BI verdaderamente notable habilitado para
Python . Al momento de escribir, esta funcionalidad se encuentra en la sección de características preliminares (es decir, solo una versión beta).
Durante mucho tiempo y con gusto, he estado usando Power BI en mi trabajo (tanto como analista de datos como desarrollador de BI). Siempre trato de probar nuevas funciones que se anuncian generosamente en la sección de prelanzamiento. Y, debemos rendir homenaje al equipo de desarrollo de Microsoft, estas son casi siempre versiones sólidas y viables de características, opciones y visualizaciones.
La comunidad de BI esperaba especialmente la inclusión del soporte de Python en Power BI. No es que la funcionalidad incorporada de Power BI no fuera suficiente para implementar las tareas más complejas resueltas por los sistemas BI. Alrededor de 250 funciones del lenguaje de consulta
DAX incorporado e incluso más de setecientas funciones de Power Query permitieron resolver casi cualquier tarea de BI, desde obtener datos de una amplia variedad de fuentes, construir un modelo de datos y respaldar visualizaciones e informes. El año pasado, se agregó soporte para el lenguaje R, que amplió dramáticamente las capacidades de Power BI en términos de realizar cálculos científicos, nuevas visualizaciones e incluso aprendizaje automático.
Sin embargo, no es ningún secreto que hoy el líder en el entorno de Data Science entre los lenguajes de programación es Python. Y la inclusión de este lenguaje en el ecosistema de Microsoft BI convierte a Power BI en una especie de cuchillo suizo para la preparación, análisis y presentación final de datos. Con soporte completo para cuatro lenguajes especializados (DAX, Power Query / M, R, Python) y limitado, dentro de la funcionalidad necesaria de SQL y MDX. Algunos geeks también atornillan JavaScript, pero esta es una conversación separada.
Como desarrollador de Python no practicante, incluí ansiosamente soporte experimental para Python para probar nuevos horizontes de apertura. Revisé el menú de la última versión de PBI y volví a cargar la aplicación. Lea más sobre cómo conectarse y configurar
en el blog de Microsoft .
Ya tenía instalada una versión anterior de Python y decidí arriesgarme y no molestarme en instalar una nueva. Como resultado, apareció un nuevo conector en las fuentes de datos: "Pyton Script" y un nuevo icono [
Py ] en el panel de visualización.
Sin embargo, en este punto, el código de Python no se ejecutó. No describiré todas las vicisitudes asociadas con el intento de ejecutar Python desconocido (casi) en un entorno familiar para mí y Power BI.
Sea como fuere, incluso una instalación limpia del ensamblaje de Anaconda con una gran cantidad de bibliotecas preinstaladas, un administrador de paquetes avanzado, etc., prácticamente no me empujó a las preciadas "imágenes". Las diferentes versiones de Python dieron diferentes mensajes de error a mi código de prueba, y estaba un poco desanimado. Una búsqueda de Google en estas publicaciones tampoco arrojó resultados adecuados. Recientemente apareció en el portal, en la comunidad de Power BI (
https://community.powerbi.com ), una solicitud de un usuario danés sobre un problema similar condujo a un pensamiento de maduración larga: no se trata de la configuración de mi computadora con una mezcla ruidosa de software instalado (revisé diferentes coches, pero en todas partes están: mezcla explosiva, solo diferente). El punto es la localización.
Cuando quedó claro hacia dónde mirar, las respuestas más sensatas de los motores de búsqueda comenzaron a surgir consultas refinadas. Pero el punto era el mismo en todas partes: “En la versión actual de Power BI, no se puede usar el formato de números con un punto decimal, sino solo con un punto decimal, junto con Python. Espere la versión actualizada o cambie el formato de la representación de números ".
En Power BI, puede cambiar el formato de número en un par de segundos a través del menú, pero ¿qué hacer con toneladas de informes preparados y datos de origen? La piel de oveja claramente no valía la pena.
En este momento, todas las "pitones afectadas por el poder bi" se dividieron en dos campos: los estadounidenses y los ingleses con un punto decimal y todo lo demás. Parte del "remanente restante de la versión actual" cruzó rápidamente al primer grupo, estableciendo un punto como separador estándar. El resto del ponura comenzó a esperar la liberación corregida. Pero desde Esta es una versión beta y la traducción a la funcionalidad del producto puede llevar dos meses y medio año, definitivamente no valía la pena esperar las correcciones día a día.
Y en ese momento decidí echar un vistazo más de cerca al mensaje de error:
Más de cerca, porque el error no estaba relacionado con mi código, que en
Jypyter se ejecutó sin errores y mostró todos los elementos visuales sin ningún problema. El problema fue causado por un código adicional que Microsoft había implementado para integrar Python con Power BI. A saber, con la llamada a la biblioteca matplotlib (
https://ru.wikipedia.org/wiki/Matplotlib ) y específicamente la función pyplot (archivo pyplot.py).
Pero para eso, y software de código abierto para ejecutar sus pequeñas manos juguetonas en él. Sin pensarlo dos veces, al abrir un código de función de ciento treinta kilobytes en la dirección indicada en el texto del error, descubrí que se produce un error cuando se inicializa figManager.
En el código fuente de la biblioteca, este código Python se ve así:
figManager = new_figure_manager(num, figsize=figsize, dpi=dpi, facecolor=facecolor, edgecolor=edgecolor, frameon=frameon, FigureClass=FigureClass, **kwargs)
Respetando una biblioteca tan importante, acabo de comentar el código para llamar al parámetro
figsize del problema, al que Microsoft pasa cuatro argumentos de Poiwer BI en lugar de dos en versiones localizadas, y pasé el tamaño de visualización predeterminado a este parámetro.
Ahora este código se ve así:
figManager = new_figure_manager(num, figsize=rcParams['figure.figsize'],
En el conjunto actual de Anaconda, estas son 542-549 líneas. Si tiene una versión diferente de la biblioteca, simplemente busque la entrada "figManager" y realice los cambios necesarios y guarde la biblioteca corregida con el mismo nombre (para esto necesitará derechos de administrador).
Después de eso, simplemente reinicie el código de visualización para la ejecución y disfrute del resultado ... Bueno, o espere hasta que la montaña llegue a Mohammed, o más bien Microsoft a Python.
Yuri Kolmakov (
McCow )