Upgrade Python Linux =link= May 2026

pyenv – it's safe, flexible, and doesn't require root.

conda install python=3.12 # Or create a new environment conda create -n py312 python=3.12 conda activate py312 After upgrading, ensure pip is updated for the new Python version:

Remember: run sudo make install without altinstall , and never manually symlink /usr/bin/python3 to a custom build unless you know exactly what you're doing. upgrade python linux

cd /tmp wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz tar -xzf Python-3.12.2.tgz cd Python-3.12.2 ./configure --enable-optimizations # Optimizes the binary (slower compile, faster Python) make -j $(nproc) # Use all CPU cores sudo make altinstall # Crucial: use altinstall, NOT install Why altinstall ? It prevents overriding the default python3 binary. It installs as python3.12 specifically. Step 4: Verify Installation python3.12 --version # Output: Python 3.12.2 To use this version, always call python3.12 or create a virtual environment. Method 2: Using pyenv (Best for Multiple Versions) pyenv lets you install and switch between multiple Python versions per-user, without affecting the system. Installation # Install pyenv dependencies (same as Method 1) # Then install pyenv curl https://pyenv.run | bash Add to your ~/.bashrc (or ~/.zshrc ):

python3.12 -m pip install --upgrade pip To install packages for your new Python: pyenv – it's safe, flexible, and doesn't require root

Instead, install new Python versions alongside the system Python. Method 1: Using the Official Python Installer (Recommended) This method works on almost any Linux distribution and installs Python to /usr/local/bin , leaving the system Python untouched. Step 1: Install Dependencies # Debian/Ubuntu sudo apt update sudo apt install -y build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev curl \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev Fedora/RHEL/CentOS sudo dnf groupinstall -y "Development Tools" sudo dnf install -y openssl-devel bzip2-devel libffi-devel readline-devel sqlite-devel Step 2: Download Python Visit python.org/downloads or use wget to get the latest version (replace 3.12.2 with the latest version):

Upgrading Python on Linux can be approached in several ways, depending on your Linux distribution, whether you want to replace the system Python, and your need for multiple Python versions. This guide covers the safest and most common methods. Important Warning: Don't Replace the System Python Most modern Linux distributions (Ubuntu, Debian, Fedora, CentOS, etc.) rely on their default Python installation for critical system tools like apt , yum , and gnome-terminal . It prevents overriding the default python3 binary

export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" Restart your shell. # List available Python versions pyenv install --list Install a specific version pyenv install 3.12.2 Set global (user-wide) Python version pyenv global 3.12.2 Set local (project-specific) version pyenv local 3.12.2 Verify python --version