Don't miss your chance to take exam DP-600 or DP-700 on us!
Request nowLearn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now
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/2...
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.
Solved! Go to Solution.
@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.
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
privacy levels: no difference
Text.FromBinary step: same indentation error
@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.
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
| User | Count |
|---|---|
| 50 | |
| 40 | |
| 32 | |
| 14 | |
| 13 |
| User | Count |
|---|---|
| 87 | |
| 73 | |
| 37 | |
| 28 | |
| 26 |