I’ve always been a big fan of installing Python from source. It keeps you close to your environments and understanding exactly where the code comes from and goes to.
I feel like in the past it was more difficult, but year after year it seems like it’s getting easier. This year for Ubuntu 26.04 there is a bit of a new step added, but ultimately it is feeling effortless. The whole process takes about 10 or so minutes, and is good for people of all levels to understand.
Prep for on a fresh install of Ubuntu 26.04
You may need a C compiler if you haven’t yet downloaded:
sudo apt update && sudo apt -y install build-essential
New Ubuntu sources need to add ‘deb-src’
There is a new way to get the build-deps for Python on Ubuntu, so you’ll need to edit /etc/apt/sources.list.d/ubuntu.sources and add deb-src to the Types line.
sudo vim /etc/apt/sources.list.d/ubuntu.sources
Types: deb deb-src
Now that has been added you can get build-deps for Python:
sudo apt update sudo apt build-dep python3 sudo apt install -y pkg-config
Install all the additional packages for python extras, you want these
I generally install all additionals since many are quite important for python. Some are more specialized and you may not use, while others like libcurses are basically required if you expect to ever need to interact with an interpreter (eg troubleshooting a production environment). Others you may not need until some future data, say when you install a package that expects a certain kind of data compression. Overall, my advice is just install all unless you know more or have a specialized use case for streamlined environment.
sudo apt -y install build-essential gdb lcov pkg-config libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev libncurses-dev libreadline-dev libsqlite3-dev libssl-dev lzma tk-dev uuid-dev zlib1g-dev libmpdec-dev libzstd-dev inetutils-inetd
Python 3.14 Installation on Linux
Choose Gzipped Tarball https://www.python.org/
curl -O URLtar -xvf ZIPPEDPYTHONFILEyou will now have a directory like Python3.12.xxxsudo mv Python3.12.x /opt/Move python installation directory to /opt/ to keep home cleancd /opt/Python3.12.xinto the directory and run each command- Check you have all packages installed from above
./configure --enable-optimizationsmakeBuilds Python, this step takes some time.sudo make altinstallaltinstall skips creating the python link and the manual pages links, install will hide the system binaries and manual pages. This means that we will leave the system python installation untouched
Python is now installed.
Last important step is to configure the system links: sudo ldconfig /opt/Python3.14.x
Finally you can test:
python3.14