Raspbian Buster 10 for Raspberry Pi includes Python 3.7. Here is how to compile Python 3.8 on the Raspberry Pi.
If you need to use
apt installed Python modules that access hardware like GPIO, you can always access system Python 3.7 via
Compile Python interpreter
In general, one of the few times you should ever use
sudo on a Linux computer is
Get prereqs on your ARM device:
apt install libffi-dev libbz2-dev liblzma-dev libsqlite3-dev libncurses5-dev libgdbm-dev zlib1g-dev libreadline-dev libssl-dev tk-dev build-essential libncursesw5-dev libc6-dev openssl git
Extract the latest Python source code
Configure (3 minutes on Raspberry Pi 2):
cd cpython-3.8* ./configure --prefix=$HOME/.local --enable-optimizations
Build and install–this step takes 10-40 minutes, depending on Raspberry Pi model.
Do not use
make -j -l 4 make install
Note: don’t omit
-l 4 or Pi will be quickly overwhelmed and error build.
This limits load average to 4. Without it, load average will soar to 100+ (bad).
then open a new Terminal
which python3 and
which pip3 etc. refer to
~/.local/bin/ instead of
Don’t uninstall system Python 3
/usr/bin/python3 because system packages depend on it.
The PATH you set in Step 5 above makes Linux prefer the new Python.
Why upgrade Python?
Python 3.8 brings further speed / efficiency improvements. Specific benefits include: