Installing the Prerequisites
The prerequisites for the PowerController application are:
We'll step you through each of these in turn:
STEP 1: Checking and installing Python v3.13
Check to see which version of Python is installed:
python3 --version
If Python 3.13 is installed, you should see something like:
Python 3.13.x
If the command is not found, or the version is lower than 3.13, install python3 using one of the sections below
Installing Python v3.13 on Linux
We'll use apt to install Python 3.13 on Linux
sudo apt update
sudo apt install python3.13 python3.13-venv python3.13-dev
Installing Python v3.13 on macOS
We'll use Homebrew to install Python 3.13 on a Mac
Check if Homebrew is installed
brew --version
If Homebrew is not installed, install it with:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After installation, restart your terminal.
Install Python 3.13
brew update
brew install python@3.13
Ensure Python 3.13 is being used
brew link python@3.13 --force
Verify that v3.13 is not the default:
python3 --version
Installing Python v3.13 on a RaspberryPi
As at the time of writing, Python 3.13 compiled binaries aren't yet available for the Pi, so you will need to compile them from the source code using this guide.
STEP 2: Install git
git is needed to download the PowerController app from GitHub. Check if git is installed
git --version
If it's not installed, follow the steps below.
Installing git on Linux and RaspberryPi
sudo apt update
sudo apt install git
Installing git on macOS
brew install git
STEP 3: Install the UV package manager
uv is extremely fast and replaces tools like pip, venv, and pip-tools.
Installing UV on Linux and RaspberryPi
curl -LsSf https://astral.sh/uv/install.sh | sh
Restart your terminal session, then verify:
uv --version
Installing UV on macOS
brew install uv
# Verify installation:
uv --version
Ensuring uv is on Your PATH
If uv installs but the command is not found, add this to your shell profile (~/.bashrc, ~/.zshrc, etc.):
export PATH="$HOME/.local/bin:$PATH"
Then reload:
# Reload ZShell
source ~/.zshrc
# Reload bash
source ~/.bashrc