We’ve got something exciting for you to try ![]()
The Python 2.0.0-preview activity package is now available — and it’s ready for real-world testing.
This preview introduces cross-platform Python support and opens the door to running Python directly from UiPath Studio Web.
If you love Python (or are Python-curious), this one’s for you.
What’s new in Python 2.0.0-preview?
Cross-platform by design
With Python 2.0.0-preview, Python activities are now available across all platforms, including:
- Windows
- macOS
- Linux
This means that you can now build automations and embed your Python code directly from Studio Web.
You can then debug them either on your local machine via the UiPath Assistant, or on the Cloud*
* Running on the Cloud runtime is not fully supported, but it is possible; read more below
What to expect in Studio Web
Running Python locally
Windows
On Windows, things are straightforward and didn’t change:
- Install Python (3.12+ recommended).
- Make sure you have the .NET 8 Desktop Runtime installed on your local machine.
- In the Python Scope activity, configure it as follows:
- Python path → the Python installation folder
(e.g.C:\Users\<username>\AppData\Local\Programs\Python\Python3X\)
It is the file path of the folder that contains the Python31x.exe file - Library path → the full path to
python3x.dll
(e.g.C:\Users\<username>\AppData\Local\Programs\Python\Python3X\python3.dll)
- Python path → the Python installation folder
- You’re good to go — no extra steps needed. Select Debug on local machine in Studio Web and it will run locally via the UiPath Assistant.
macOS
Running your automations with Python on macOS works similarly, because you also need the Python path and the Library path.
To get the Python path, run this command:
which python3
It will return a full path of the python3 executable, for example:
/Library/Frameworks/Python.framework/Versions/3.13/bin/python3
For the Python Scope activity, this would be the Python path property input:
/Library/Frameworks/Python.framework/Versions/3.13/bin
However, for now there is a small limitation that we’ll fix soon. It can be worked around with a symlink so the python3 executable is discoverable as python
Small example how you could do it below:
ln -sf /Library/Frameworks/Python.framework/Versions/3.13/bin/python3 /opt/homebrew/bin/python
The last step is to find the Library path. It should be the full path to the dylib library file, for example:
/Library/Frameworks/Python.framework/Versions/3.13/lib/libpython3.13.dylib
Once configured, Python scripts run just fine on macOS from Studio Web, either as part of a published automation run from the UiPath Assistant or from Studio Web, via the Debug on local machine option.
Running Python directly from the Cloud (Studio Web)
This section is not officially supported, but I wanted to show how to make it work for anyone who likes to experiment.
This is where things get really interesting/advanced.
With Studio Web + Python 2.0.0-preview, you can technically run Python without a local machine at all — directly in a cloud execution environment. You simply need the Python runtime.
However, cloud/serverless images are minimal, and do not currently bundle the Python runtime.
The solution: install a user-space Python at runtime
Below is the working approach for the preview:
- No root access required
- Works in serverless/cloud environments
Workaround: install Python dynamically (no root required)
The easiest solution is to use uv, a lightweight, single-binary tool that downloads a standalone Python build (including libpython).
What this does
- Downloads Python at runtime
- Creates
python/python3executables - Provides the correct
libpython*.so - Lets Python Scope initialize successfully
This all happens by using the Invoke Code activity with the following code snippet:
Dim RunBash As System.Func(Of String, String) =
Function(cmd As String) As String
Dim psi As New System.Diagnostics.ProcessStartInfo()
psi.FileName = "/bin/bash"
psi.Arguments = "-lc """ & cmd.Replace("""", "\""") & """"
psi.RedirectStandardOutput = True
psi.RedirectStandardError = True
psi.UseShellExecute = False
psi.CreateNoWindow = True
Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(psi)
Dim stdout As String = p.StandardOutput.ReadToEnd()
Dim stderr As String = p.StandardError.ReadToEnd()
p.WaitForExit()
Dim combined As String = (If(stdout, "") & If(stderr, "")).Trim()
If p.ExitCode <> 0 Then
Throw New System.Exception("Command failed: " & cmd & vbCrLf & combined)
End If
Return combined
End Function
Dim FirstLine As System.Func(Of String, String) =
Function(s As String) As String
If s Is Nothing Then Return ""
Dim t As String = s.Replace(vbCr, "").Trim()
Dim parts() As String = t.Split(New Char() {ChrW(10)}, System.StringSplitOptions.RemoveEmptyEntries)
If parts.Length = 0 Then Return ""
Return parts(0).Trim()
End Function
Dim tmp As String = System.IO.Path.GetTempPath().TrimEnd("/"c)
Dim uvRoot As String = System.IO.Path.Combine(tmp, "uipath-uv")
Dim uvBin As String = System.IO.Path.Combine(uvRoot, "bin")
Dim pyBin As String = System.IO.Path.Combine(uvRoot, "pybin")
Dim pyInstallDir As String = System.IO.Path.Combine(uvRoot, "python")
If Not System.IO.Directory.Exists(uvBin) Then System.IO.Directory.CreateDirectory(uvBin)
If Not System.IO.Directory.Exists(pyBin) Then System.IO.Directory.CreateDirectory(pyBin)
If Not System.IO.Directory.Exists(pyInstallDir) Then System.IO.Directory.CreateDirectory(pyInstallDir)
Dim uvExe As String = System.IO.Path.Combine(uvBin, "uv")
' 1) Install uv (standalone installer)
If Not System.IO.File.Exists(uvExe) Then
RunBash("curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR='" & uvBin & "' sh")
End If
' Sanity check
RunBash("'" & uvExe & "' --version")
' 2) Install managed Python 3.13 and put executables in pyBin
' --default installs python and python3 shims (plus versioned python3.10) in the bin dir. :contentReference[oaicite:1]{index=1}
' We also set UV_PYTHON_INSTALL_DIR so the actual Python files live under pyInstallDir. :contentReference[oaicite:2]{index=2}
RunBash(
"env UV_PYTHON_INSTALL_DIR='" & pyInstallDir & "' " &
"UV_PYTHON_BIN_DIR='" & pyBin & "' " &
"'" & uvExe & "' python install 3.13 --default --force"
)
' 3) Determine which python executable to use (prefer unversioned python)
Dim pythonExe As String = (System.IO.Path.Combine(pyBin, "python"))
If Not System.IO.File.Exists(pythonExe) Then
pythonExe = (System.IO.Path.Combine(pyBin, "python3"))
End If
If Not System.IO.File.Exists(pythonExe) Then
pythonExe = FirstLine(RunBash("ls -1 '" & pyBin & "'/python3.* 2>/dev/null | head -n 1 || true"))
End If
If pythonExe = "" OrElse Not System.IO.File.Exists(pythonExe) Then
Throw New System.Exception("uv installed Python, but no python executable found in: " & pyBin)
End If
' 4) Find libpython*.so* under the managed install directory
Dim libpython As String =
FirstLine(RunBash("find '" & pyInstallDir & "' -type f -name 'libpython3.10.so*' -print -quit 2>/dev/null || true"))
If libpython = "" Then
libpython = FirstLine(RunBash("find '" & pyInstallDir & "' -type f -name 'libpython*.so*' -print -quit 2>/dev/null || true"))
End If
If libpython = "" Then
Throw New System.Exception("Could not find libpython*.so* under: " & pyInstallDir)
End If
' 5) Final outputs for UiPath Python Scope
pythonPathForScope = pyBin
libraryPathForScope = libpython
Dim ver As String = FirstLine(RunBash("'" & pythonExe & "' --version 2>&1 || true"))
report =
"Python Scope config:" & vbCrLf &
"PythonPath = " & pythonPathForScope & vbCrLf &
"LibraryPath = " & libraryPathForScope & vbCrLf &
"PythonExe = " & pythonExe & vbCrLf &
"Version = " & ver
' Use these in UiPath:
' - pythonPathForScope -> Python Scope: Python path
' - libraryPathForScope -> Python Scope: Library path (full file path on Linux)
' - report -> Log/debug
The script already returns the correct paths that can be used directly in the Python Scope activity like this:
| Field | Value |
|---|---|
| Python path | pythonPathForScope |
| Library path | libraryPathForScope |
That’s it ![]()
You can now run Python scripts directly from Studio Web, fully in the cloud.
See it yourself via this sample solution you can easily import in Studio Web:
Run Python script on cloud sample.uis (7.8 KB)
It should run the included Python script out of the box and on the UiPath Cloud environment.
Let us know what you think
We count on your feedback to drive our future improvements!

