Não, este artigo não é sobre o que é um monstro enorme e maligno da Microsoft. E como ela novamente ofende os usuários. E sobre como corrigir a falha irritante que apareceu com a última atualização de agosto do
Power BI Desktop com suporte ao
Python habilitado, a saber, problemas de visualização em versões localizadas do PBI, em particular o
matplotlib .
Nos dez primeiros dias de agosto, a Microsoft lançou o tão esperado e aguardado lançamento de seu produto de BI verdadeiramente notável, habilitado para
Python . No momento da redação deste artigo, essa funcionalidade está na seção de recursos preliminares (ou seja, apenas uma versão beta).
Há muito tempo e com prazer, uso o Power BI em meu trabalho (tanto como analista de dados quanto como desenvolvedor de BI). Eu sempre tento experimentar novos recursos que são generosamente anunciados na seção de pré-lançamento. E, devemos prestar homenagem à equipe de desenvolvimento da Microsoft, essas são quase sempre versões sólidas e viáveis de recursos, opções e visualizações.
A comunidade de BI esperava especialmente a inclusão do suporte ao Python no Power BI. Não que a funcionalidade interna do Power BI não tenha sido suficiente para implementar as tarefas mais complexas resolvidas pelos sistemas de BI. Cerca de 250 funções da linguagem de consulta
DAX integrada e até mais de setecentas funções do Power Query tornaram possível resolver praticamente qualquer tarefa de BI, desde a obtenção de dados de uma ampla variedade de fontes, criando um modelo de dados e suportando visualizações e relatórios. No ano passado, foi adicionado suporte à linguagem R, que expandiu drasticamente os recursos do Power BI em termos de execução de cálculos científicos, novas visualizações e até aprendizado de máquina.
No entanto, não é segredo que hoje o líder no ambiente de ciência de dados entre linguagens de programação é o Python. E a inclusão desse idioma no ecossistema do Microsoft BI transforma o Power BI em uma espécie de faca suíça para a preparação, análise e apresentação final dos dados. Com suporte completo para quatro idiomas especializados (DAX, Power Query / M, R, Python) e limitado, dentro da funcionalidade necessária do SQL e MDX. Alguns geeks também estragam o JavaScript, mas esta é uma conversa separada.
Como desenvolvedor não praticante de Python, incluí ansiosamente o suporte experimental para o Python testar novos horizontes de abertura. Verifiquei o menu da versão mais recente do PBI e recarreguei o aplicativo. Leia mais sobre conexão e configuração
no blog da Microsoft .
Eu já tinha uma versão anterior do Python instalada e decidi arriscar e não me preocupar em instalar um novo. Como resultado, um novo conector apareceu nas fontes de dados - “Pyton Script” e um novo ícone [
Py ] no painel de visualização.
No entanto, neste momento, o código Python não foi executado. Não descreverei todas as vicissitudes associadas à tentativa de executar Python não familiar (quase) em um ambiente familiar para mim e para o Power BI.
Seja como for, mesmo uma instalação limpa do assembly Anaconda com um grande número de bibliotecas pré-instaladas, um gerenciador de pacotes avançado etc. praticamente não me levou às “imagens” queridas. Versões diferentes do Python deram diferentes mensagens de erro ao meu código de teste, e fiquei um pouco desanimado. Uma pesquisa no Google nessas postagens também não retornou resultados adequados. Recentemente, apareceu no portal, na comunidade do Power BI (
https://community.powerbi.com ), uma solicitação de um usuário dinamarquês sobre um problema semelhante levou a um pensamento de longo amadurecimento - não se trata da configuração do meu computador com uma mistura impressionante de software instalado (verifiquei diferentes carros, mas onde quer que estejam - mistura explosiva, apenas diferente). O ponto é localização.
Quando ficou claro para onde olhar, respostas mais sãs dos mecanismos de pesquisa começaram a aparecer em consultas refinadas. Mas o ponto era o mesmo em todo lugar: “Na versão atual do Power BI, você não pode usar o formato de números com um ponto decimal, mas apenas com um ponto decimal, junto com o Python. Aguarde a versão atualizada ou altere o formato da representação dos números ".
No Power BI, você pode alterar o formato do número em alguns segundos no menu, mas o que fazer com toneladas de relatórios prontos e dados de origem? A pele de carneiro claramente não valia o esforço.
Nesse ponto, todos os "pítons sob o poder bi" atingidos foram divididos em dois campos: os americanos e os ingleses com um ponto decimal e todo o resto. Parte do "restante da versão atual" passou às pressas para o primeiro grupo, estabelecendo um ponto como separador padrão. O resto da ponura começou a esperar pelo lançamento corrigido. Mas desde Esta é uma versão beta e a tradução para a funcionalidade do produto pode levar dois meses e meio ano. Definitivamente, não valia a pena esperar pelas correções do dia a dia.
E naquele momento, decidi examinar mais de perto a mensagem de erro:
Mais de perto, porque o erro não estava relacionado ao meu código, que no
Jypyter foi executado apenas sem erros e exibiu todos os elementos visuais sem problemas. O problema foi causado por código adicional que a Microsoft havia implementado para integrar o Python ao Power BI. Ou seja, com a chamada para a biblioteca matplotlib (
https://ru.wikipedia.org/wiki/Matplotlib ) e, especificamente, a função pyplot (arquivo pyplot.py).
Mas, para isso, e software de código aberto para colocar suas mãozinhas divertidas nele. Sem pensar duas vezes, abrindo um código de função de cento e trinta kilobytes no endereço fornecido no texto do erro, descobri que ocorre uma falha quando o figManager é inicializado.
No código-fonte da biblioteca, esse código Python se parece com o seguinte:
figManager = new_figure_manager(num, figsize=figsize, dpi=dpi, facecolor=facecolor, edgecolor=edgecolor, frameon=frameon, FigureClass=FigureClass, **kwargs)
Respeitando uma biblioteca tão importante, acabei de comentar o código para chamar o parâmetro
figsize do problema, para o qual a Microsoft passa quatro argumentos do Poiwer BI em vez de dois em versões localizadas e passou o tamanho de visualização padrão para esse parâmetro.
Agora esse código se parece com isso:
figManager = new_figure_manager(num, figsize=rcParams['figure.figsize'],
Na montagem atual da Anaconda, essas são 542-549 linhas. Se você tem uma versão diferente da biblioteca, basta procurar a entrada “figManager”, fazer as alterações necessárias e salvar a biblioteca corrigida com o mesmo nome (para isso você precisará de direitos de administrador).
Depois disso, basta reiniciar o código de visualização para execução e aproveitar o resultado ... Bem, ou aguarde até que a montanha chegue a Mohammed, ou melhor, Microsoft a Python.
Yuri Kolmakov (
McCow )