Python is one of the most popular high-level languages, focusing on high-level and object-oriented applications from simple scrips to complex machine learning algorithms. Python is famous for its simple, easy-to-learn syntax, emphasizes readability, and reduces program maintenance costs and more straightforward conversion to newer releases. Python supports modules and packages. One of the many is the popular PIP package manager.
Some of the features Python can do:
- Python can be used on a server to create web applications.
- Python can be used alongside software to create workflows.
- Python can connect to database systems. It can also read and modify files.
- Python can be used to handle big data and perform complex mathematics.
- Python can be used for rapid prototyping or production-ready software development.
For users and especially developers wanting to try out Python’s latest release, you will know how to install Python 3.11 development beta in the following tutorial.
Table of Contents
Prerequisites
- Recommended OS: Ubuntu 20.04 or higher
- User account: A user account with sudo or root access.
Update Operating System
Update your Ubuntu operating system to make sure all existing packages are up to date:
sudo apt update && sudo apt upgrade -y
The tutorial will be using the sudo command and assuming you have sudo status.
To verify sudo status on your account:
sudo whoami
Example output showing sudo status:
[joshua@ubuntu ~]$ sudo whoami
root
To set up an existing or new sudo account, visit our tutorial on How to Add a User to Sudoers on Ubuntu.
To use the root account, use the following command with the root password to log in.
su
The tutorial will utilize the terminal interface, which can be found in the show applications menu.
Example:
Option 1. Install Python 3.11 with APT Package Manager
To install the latest versions of Python 3.11 is a relatively straightforward process, thanks to custom PPAs. To install and receive continued updates for new features, bug fixes, and critical security updates, you will add the (deadsnakes/ppa).
First, install the prerequisite for adding custom PPAs:
sudo apt install software-properties-common -y
Secondly, install one of the two PPA’s on offer
To install the (deadsnakes/ppa) branch:
sudo add-apt-repository ppa:deadsnakes/ppa -y
To install the (deadsnakes/ppa) Nightly branch:
sudo add-apt-repository ppa:deadsnakes/nightly -y
Note, it would be ideal to install the nightly build for Python 3.11. However, if you are using multiple versions the default branch would be best.
Now that you have added the repository, refresh your APT sources list.
sudo apt update
Once the repository has been installed, you can now install Python 3.11 by executing the following code:
sudo apt install python3.11
You will see the following packages installed in your installation:
Verify the installation by checking the build.
python3.11 --version
Example output:
Python 3.11.0a2+
Optionally, you can install the following extras.
To install development headers for building C extensions:
sudo apt install python3.11-dev
To install the standard library (venv) module:
sudo apt install python3.11-venv
To install the standard library (distutils) module:
sudo apt install python3.11-distutils
To install the (2to3.11) utility as well as the standard library (lib2to3) module:
sudo apt install python3.11-lib2to3
To install the standard library (dbm.gnu) module:
sudo apt install python3.11-gdbm
To install the standard library (tkinter) module:
sudo apt install python3.11-tk
Next, to open Python 3.11 shell, use the following command.
python3.11
To exit the Python 3.11 shell, use the following command.
exit()
All updates are done automatically for you. To grab the nightly updates, use the apt update command.
sudo apt update
If an available update is available, it will appear with the rest of your APT packages upgrades; use the apt upgrade to proceed.
sudo apt upgrade
To remove Python 3.11 using the APT method, use the following command.
sudo apt remove python3.11 --purge
Note, if you have installed additional modules, you may need to use the following command instead.
sudo apt autoremove python3.11* --purge
Once removed and you no longer want the nightly PPA, remove it using the following terminal command.
sudo add-apt-repository --remove ppa:deadsnakes/nightly -y
Use the following if you want to roll back to the stable version of the deadsnakes/ppa.
sudo add-apt-repository ppa:deadsnakes/ppa -y
As for now, only the nightly contains 3.11.
Option 2. Install Python 3.11 by Compiling Source
The alternative option for those that feel up to more of a challenge or require specific advanced builds from the git repository of the source can opt to install directly from the source. The main issue with this method is that you cannot quickly update like the APT package manager and will need to recompile for any changes.
First, you will need to install the dependencies necessary to build Python 3.11:
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y
The second part is visiting the source downloads page on Python’s website and getting the latest version using (wget):
wget https://www.python.org/ftp/python/3.11.0/Python-3.11{version number}
An example is taken from the November 5th release:
wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0a2.tar.xz
Note, this is Python 3.11 pre-release version; visit and check for updates.
The file archive is small, so it won’t take a long time to download. Once done, extract the archive:
tar -xf Python*
You will need to switch to the source directory and run the configuration script, which does an essential run-through checklist to ensure all dependencies are present for the installation to work.
Example:
cd Python-3.11.0a2
Next, set the configuration script.
./configure --enable-optimizations
Note, the (–enabled-optimizations) is recommended as it optimizes the Python binary by running multiple tests but takes extra time to compete.
Overall the process should take a few minutes, so it’s recommended not to skip.
The next option is to use the (make) command to start the build process.
make -j 2
Note, the (-j) corresponds to the number of cores in your system to speed up the build time. If you have a powerful server, you can set this as high as you like. If you don’t, then it will be the default option of 1. To find out how many cores you have on your system, execute the following code:
nproc
Example output:
2
As you can see, we have two cores, so in the (make) command, we used (-j 2).
In the last step, once you have finished with the build process, you will install Python 3.11 source by executing the following:
sudo make altinstall
Note, the guide has used (altinstall) instead of the default (install) because it will overwrite the default python3 binary python binary file /usr/bin/python.
Check the version of the installation to make sure it has been installed successfully and its current build number:
sudo python3.11 --version
Example output:
Python 3.11.0a2+
To open Python 3.11 shell, use the following command.
python3.11
To exit the Python 3.11 shell, use the following command.
exit()
Create a Test Virtual Environment
Python’s venv module is a virtual environment is a Python environment such that the Python interpreter, libraries, and scripts installed into it are isolated from those established in other virtual environments, and (by default) any libraries installed on your operating system, for example, those that are installed on your Ubuntu operating system to avoid clashing and disturbing your production environments.
To make sure Python 3.11 is installed correctly and functioning, create a quick Python project as follows.
First, create the project directory and navigate to it:
mkdir ~/test_app && cd ~/test_app
Now inside the project root directory, run the following command to create a virtual environment, for the test name it test_app:
python3.11 -m venv test_app_venv
Note, the compiled installation included venv. However, if you installed using the APT package manager method, you may need to install the venv package if you encounter problems.
sudo apt install python3.11-venv -y
Next, activate the virtual environment as follows:
source test_app_venv/bin/activate
After starting the virtual environment, you will now be in the shell prompt terminal. You will notice the name of your environment will be prefixed.
Example:
By default, PIP3.11 should be installed, which is the most used package manager for Python.
Before you begin, check if any upgrades are available for PIP.
python3.11 -m pip install --upgrade pip
Example output:
In the tutorial to test the installation, Apache-Airflow was installed.
Example:
pip3.11 install apache-airflow
If using the APT package manager method, you will need to install the Python 3.11-dev version. Failure to do this will result in most PIP packages not installing correctly.
Manual installations (compiled) do not need to do this as it comes natively installed.
sudo apt install python3.11-dev -y
Remove the test application using PIP3.11.
pip3.11 uninstall apache-airflow
Example output:
To exit the virtual environment, use the following command:
deactivate
Comments and Conclusion
In the tutorial, you have learned how to install Python 3.11 on Ubuntu 20.04 LTS Focal Fossa using the PPA by Snakeyes or compiling from source and learning how to create a quick virtual environment.
Overall, Python 3.11 is still in development at this point, so sticking with Python 3.9 to 3.10 may be more desirable for the time being. For those wanting to test the latest Python, 3.11 is worth the investment to install.