Installing Python
Both MINTverse packages require Python 3.12 or newer. Most machines already have a Python on them, and on most machines it is too old. macOS ships 3.9 at /usr/bin/python3. A long-term-support Linux release may ship 3.10 or 3.11, and a Windows machine may have whatever a previous installer left behind. An interpreter one version short will accept the install command and then fail on syntax it does not recognise. Settle the version first.
python3 --versionThis is R.version.string. The difference is that you may have several Pythons on the machine, and this only tells you about the first one on your PATH.
Install uv first, and let it install Python. uv is a self-contained binary that does not need an existing Python to run. It works on a machine with no usable interpreter at all.
1. Install uv
uv is distributed as a single binary and installed with one command. Nothing to compile, and no Python involved.
curl -LsSf https://astral.sh/uv/install.sh | shcurl -LsSf https://astral.sh/uv/install.sh | shIn PowerShell.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"The installer writes one binary to ~/.local/bin (or %USERPROFILE%\.local\bin) and puts that directory on your PATH. The PATH change applies only to shells started afterwards, so close the terminal and open a new one. Then check:
uv --versionIf the command is not found after reopening the terminal, the PATH change has not taken. See the Astral install docs for the per-shell fix.
2. Install Python with uv
uv python install 3.12uv downloads a standalone build of CPython 3.12 and keeps it in its own directory, separate from any Python the operating system already has. Nothing system-wide is touched.
There is no R equivalent, because you only ever have one R. The nearest thing is rig, or the version dropdown in RStudio Server.
To see every interpreter uv can find, managed or otherwise:
uv python listThat prints each one with its full path and version. When a machine has three Pythons, it is the fastest way to find out which one you are getting.
Choosing a version
Take 3.12 unless you have a reason not to. It is the minimum both packages accept, and the version the MINTverse examples are tested against.
Anything newer works too, and uv python install 3.13 is fine. Anything older does not work, and the failure it produces is indirect. pip may resolve to an old release of estimint that predates the 3.12 requirement, install that release, and then behave differently from the current one. If a version looks wrong, check the interpreter before you check anything else.
You do not have to pick one globally. A project can pin its own:
uv python pin 3.12which writes a .python-version file that uv honours inside that directory.
Doing it without uv
If installing new tooling is not an option, each platform has a conventional route. These give you an interpreter but none of the environment management. You will be using venv and pip by hand. Please see Environments and packages.
The venv module is packaged separately on Debian and Ubuntu, so you need it explicitly.
sudo apt update
sudo apt install python3.12 python3.12-venvOn Fedora:
sudo dnf install python3.12Apple’s /usr/bin/python3 exists for the operating system’s own use. It is several versions behind and should be left alone, so install a separate one with Homebrew.
brew install python@3.12Homebrew puts its Python under /opt/homebrew/bin (Apple silicon) or /usr/local/bin (Intel), ahead of /usr/bin on the PATH. Confirm the shell agrees.
which python3
python3 --versionIf which python3 still answers /usr/bin/python3, the shell is finding Apple’s copy first and the PATH needs fixing before you go on.
Download 3.12 or later from python.org/downloads and run the installer. On the first screen, tick Add python.exe to PATH before clicking Install Now. Without it, python is not a command, pip is not a command, and VS Code will not find the interpreter unless you type its full path.
Then, in a fresh PowerShell window, confirm which interpreter the shell finds first.
python --version
where pythonwhere python lists every python.exe on the PATH in search order. If the first entry sits under C:\Users\<you>\AppData\Local\Microsoft\WindowsApps, that is the Microsoft Store stub rather than a real interpreter, and the python.org install has not reached the front.
On Linux and macOS, /usr/bin/python3 belongs to the operating system, and parts of the system are written in it. sudo pip install can replace a library one of them depends on. Recent Linux distributions block this outright with an externally-managed-environment error. Do not reach for --break-system-packages. Create a project environment instead.
R lets you get away with a single shared library because CRAN polices compatibility. Nothing polices PyPI, so Python does not let you.
See also
The editor to run all of this in is Working in VS Code. Please see Environments and packages for where the packages actually go.