Forum Discussion

johanvdk67's avatar
johanvdk67
Regular Visitor
4 years ago
Solved

executing an external python script from Powerbi

I have an external python script, this runs without errors when I execute from Python:

 

 

import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'],dtype=float)
print (df)

 

 

 

 

 

     Name   Age
0    Alex  10.0
1     Bob  12.0
2  Clarke  13.0

 

 

 

When executing this script from the PowerBI Python interface, no problems:

 

My idea is to execute this from PowerBI desktop as an external file. Why would I want that ? When the script is on my disk I can maintain it via GIT without having to copy paste the contents:

 

 

let
	PythonFile = Text.FromBinary(File.Contents("c:\git\example.py")),
	Source = Python.Execute(PythonFile)
in
	Source

 

 

 

Inspiration comes from: https://community.powerbi.com/t5/Desktop/Can-I-run-external-Python-scripts-in-Power-BI-desktop/m-p/2084822#M775602

 

When doing this: I get an indentation error:

I find it hard to debug the error, as the PythonScriptWrapper seems to be a black box (cannot find it on disk), when I refer to a non existing file, the error will be the same.

  • Anonymous's avatar
    Anonymous
    4 years ago

    johanvdk67  - Okay, so the issue is not the Python step, it is the opening of the Binary file.  It must have a funny character or binary format that is confusing Power Query.

    Could you open the Example.Py file in Notepad - like this - Mine is working.

     

      

5 Replies

  • johanvdk67's avatar
    johanvdk67
    Regular Visitor

    Have chosen an "manual" approach via the powerquery editor, somehow I have it working now ..... I will try to figure out what is different and why my initial approach gave the indentation errors

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi johanvdk67 .  Have you checked the firewall settings,

     

    and what does the result of the "Text.FromBinary" step look like?

    let
    Source = File.Contents("C:\Temp\python.py"),
    Custom1 = Text.FromBinary(Source)
    in
    Custom1

     

     

  • johanvdk67's avatar
    johanvdk67
    Regular Visitor

    privacy levels: no difference

     

    Text.FromBinary step: same indentation error

    • Anonymous's avatar
      Anonymous
      Not applicable

      johanvdk67  - Okay, so the issue is not the Python step, it is the opening of the Binary file.  It must have a funny character or binary format that is confusing Power Query.

      Could you open the Example.Py file in Notepad - like this - Mine is working.