Update Python 3 on Debian
This article explains how to install the latest version of Python3 from source code on Debian 10.
1. Check the Installed Version
Check the installed Python3 version.
# python3 -V
You will see something like this.
If your version is older than your application requires, proceed with this guide.
2. Update Python3
Install the required dependencies to compile the Python source code.
# apt-get install wget build-essential libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev liblzma-dev -y
Visit Python's Source Code Download page to find the latest gzipped source release. Replace the URLs and filenames in this guide with the latest version.
Download the latest Python3 source code.
# wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
Extract the downloaded python source code archive.
# tar xzf Python-3.9.6.tgz
Compile the python source code.
# cd Python-3.9.6 && ./configure --enable-optimizations
# make altinstall
Check the name of your new Python executable.
# ls /usr/local/bin/python*
Set the new Python executable as default. Replace the two instances of
/python3.9in the following command with the name of your new Python executable.
# update-alternatives --install /usr/bin/python python /usr/local/bin/python3.9 1
2. Update Pip
Update pip. Use the name of your new Python executable in the following command.
# /usr/local/bin/python3.9 -m pip install --upgrade pip
Check the name of your new pip executable.
# ls /usr/local/bin/pip*
Set the new pip as the default. Use the name of your new pip executable in the following command.
# update-alternatives --install /usr/bin/pip pip /usr/local/bin/pip3.9 1
Check the current version of Python and pip.
# python -V && pip -V
You will see something like this:
Python 3.9.6 pip 21.2.3 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
Keeping your Python up-to-date is an important part of the development process. It provides bug fixes compared to older versions, and more importantly, it introduces new features and optimizations.