Python >= 3.13 #170
Closed
Poundex
started this conversation in
Known Issues
Replies: 1 comment
-
|
With the release of 1.1.0 this workaround is no longer necessary. If no suitable Python installation is found, and the Worker is unable to provision one, then it will fall back to using the new Static Runtime (#175). It is still possible to set a custom Python path if the Python Runtime is desired where it would otherwise be unavailable. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
One of Python's core dependency format is an artefact known as a Wheel, which is a binary version of a a collection of Python sources and dependencies. Many package maintainers build and offer this Wheel for download as part of the official package artefacts. However there are some transitive dependencies that we have that point at now abandoned Python packages, that are not building Wheels for newer Python versions (which are both version and disto specific due to their binary nature).
A failure to resolve a Wheel will result in Pip, the Python package manager, to attempt to build its own Wheel from the source distribution. Building these Wheels often requires dependencies such as C/C++ or Rust toolchains which Python/Pip are not capable of installing by themselves, resulting in failed Pip invocations.
Workaround Steps
Many Linux package managers, as well as Mac's Homebrew, will allow you to install multiple versions of Python side-by-side. If you are able to install a version < 3.13 you can instruct the Worker to use this specific version, rather than searching the path.
Example for Homebrew:
$ brew install python@3.11$ ./rpa-worker -Dcamunda.rpa.python.interpreter=/opt/homebrew/bin/python3.11If the Worker has already created a Python environment using an unsupported version of Python, the entire
python/directory should be removed so that it is created from scratch using the desired Python version
Other Options
Yes, you can always use the container version of the Worker which ships with its own isolated Python. However this will preclude the ability to automate local programs, as well as run browser automations in graphical mode (so you can actually see the browser being automated, but it will still work headlessly).
If you are on Linux it should be trivial to install the required toolchains, a newish version of gcc or Clang will usually do, as well as the Rust toolchain either from your package manager or via RustUp. This approach involves Xcode on MacOS, so may be more trouble than it is worth.
Beta Was this translation helpful? Give feedback.
All reactions