How To Install Python On Linux

8 min read

How to Install Python on Linux: A Step‑by‑Step Guide

If you are looking for a clear, reliable way to get Python running on your Linux machine, you’ve come to the right place. This guide covers everything from checking what’s already installed to compiling the latest release from source, using package managers, and managing multiple versions with pyenv. By the end, you’ll know exactly how to install python on linux and be ready to start coding, whether you’re a beginner or an experienced developer.


Introduction

Python is one of the most popular programming languages today, powering web applications, data science scripts, automation tools, and more. That said, most Linux distributions ship with a version of Python pre‑installed, but it may be outdated or lack the features you need for a particular project. Knowing how to install python on linux gives you full control over the interpreter version, lets you install the latest security patches, and enables you to work with virtual environments without interfering with system packages.


Prerequisites

Before diving into the installation methods, make sure you have:

  • A user account with sudo privileges (required for system‑wide installs).
  • Access to a terminal (Ctrl + Alt + T on most desktop environments).
  • An active internet connection for downloading packages or source code.
  • Basic familiarity with command‑line navigation (e.g., cd, ls).

1. Check What’s Already Installed

It’s wise to see if Python is present and which version you have. Open a terminal and run:

python3 --version

If you see something like Python 3.11.2, the interpreter is already available Nothing fancy..

python --version

If the output shows an error or a version older than you need, proceed with one of the installation methods below That's the whole idea..


2. Installing Python via the Distribution’s Package Manager

Using the built‑in package manager is the safest and quickest way to get a stable Python build that integrates well with your system’s updates.

Debian/Ubuntu (APT)

  1. Update the package list:

    sudo apt update
    
  2. Install the desired version. For the latest stable release in the official repos:

    sudo apt install python3
    

    To install a specific version (e.g., 3.

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
    sudo apt install python3.12
    

Fedora, RHEL, CentOS (DNF/YUM)

  1. Refresh the repository metadata:

    sudo dnf check-update   # Fedora
    # or
    sudo yum check-update   # older RHEL/CentOS
    
  2. Install Python:

    sudo dnf install python3   # Fedora
    # or
    sudo yum install python3   # RHEL/CentOS 7
    

    For newer versions, enable the Software Collections (SCL) or EPEL repository:

    sudo dnf install https://dl.noarch.Here's the thing — org/pub/epel/epel-release-latest-9. fedoraproject.rpm
    sudo dnf install python3.
    
    

Arch Linux (Pacman)

Arch keeps its packages very up to date, so a simple command usually gives you the latest stable release:

sudo pacman -Syu python

If you need an alternative version, look in the AUR (Arch User Repository) with an AUR helper like yay:

yay -S python3.11

OpenSUSE (Zypper)

sudo zypper refresh
sudo zypper install python3

3. Installing Python from Source

When you need a version that isn’t offered by your distro’s repositories, compiling from source guarantees you get the exact release you want.

Step‑by‑Step

  1. Install build dependencies (these vary by distro). On Ubuntu/Debian:

    sudo apt install build-essential libssl-dev zlib1g-dev \
                     libncurses5-dev libncursesw5-dev libreadline-dev \
                     libsqlite3-dev libgdbm-dev libdb5.3-dev \
                     libbz2-dev libexpat1-dev liblzma-dev tk-dev \
                     libffi-dev wget
    

    On Fedora:

    sudo dnf groupinstall "Development Tools"
    sudo dnf install openssl-devel bzip2-devel libffi-devel \
                     zlib-devel xz-devel wget tk-devel
    
  2. Download the source tarball from the official website (replace 3.12.4 with the version you need):

    wget https://www.On the flip side, python. Day to day, org/ftp/python/3. 12.4/Python-3.On the flip side, 12. Worth adding: 4. And tgz
    tar -xf Python-3. 12.4.tgz
    cd Python-3.12.
    
    
  3. Configure the build. Adding --enable-optimizations runs the test suite and makes the binary faster:

    ./configure --enable-optimizations
    
  4. Compile and install. Use make -j$(nproc) to parallelize the build, then make altinstall to avoid overwriting the system python3 binary:

    make -j$(nproc)
    sudo make altinstall
    

    The altinstall target creates a binary named python3.12 (or whatever version you built) alongside the existing one.

  5. Verify:

    python3.12 --version
    

    You should see the version you just compiled.


4. Managing Multiple Versions with pyenv

If you frequently switch between projects that require different Python releases, pyenv simplifies version management without affecting the system Python.

Installation

  1. Install pyenv dependencies (example for Ubuntu):

    sudo apt install make build-essential libssl-dev zlib1g-dev \
                     libbz2-dev libreadline-dev libsqlite3-dev wget \
                     curl llvm libncurses5-dev libncursesw5-dev \
                     xz-utils tk-dev libffi-dev liblzma-dev
    
  2. Install pyenv using the installer script:

    curl https://pyenv.run | bash
    
  3. Add pyenv to your shell startup file (~/.bashrc, ~/.zshrc, or ~/.profile):

    echo 'export PYENV_ROOT="$HOME/.Still, pyenv"' >> ~/. Also, bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/. bashrc
    echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.
    
    Then reload the shell:
    
    ```bash
    
    

Then reload the shell:

```bash
source ~/.bashrc
```

### Using pyenv

Once pyenv is set up, you can install and manage different Python versions effortlessly.

**List available versions:**
```bash
pyenv install -l
```

**Install a specific version:**
```bash
pyenv install 3.11.5
```

**Set the global Python version** (applies to all new shells):
```bash
pyenv global 3.11.5
```

**Set a local Python version** (applies only to the current directory):
```bash
cd ~/my_project
pyenv local 3.10.12
```

You can verify the active version at any time with `python --version` or `pyenv version`. This local version setting is incredibly useful for project-specific dependencies, ensuring that each project runs with its intended Python interpreter automatically.

Probably most important practices after setting up your Python environment is using virtual environments. Regardless of whether you installed Python via the system package manager, compiled it from source, or manage versions with pyenv, virtual environments keep your project dependencies isolated and prevent the dreaded "it works on my machine" problem.

5. Virtual Environments

Using venv (Built-in)

Python 3.3+ includes the venv module, which is the standard way to create lightweight virtual environments:

python3.12 -m venv my_project_env

Activate the environment:

# On Linux/macOS
source my_project_env/bin/activate

# On Windows
my_project_env\Scripts\activate

Once activated, your shell prompt will change to indicate the active environment, and any packages installed via pip will be confined to that environment:

pip install requests flask

Deactivate when you're done:

deactivate

Using virtualenv (Third-Party)

For more advanced features — such as faster environment creation and compatibility with older Python versions — consider virtualenv:

pip install virtualenv
virtualenv my_env
source my_env/bin/activate

Combining pyenv with Virtual Environments

A powerful workflow is to pair pyenv with virtual environments. pyenv manages which Python interpreter you use, while virtual environments manage which packages are available. You can even automate this with the pyenv-virtualenv plugin:

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

Then add it to your shell config:

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

This lets you create a virtual environment tied to a specific pyenv version in one command:

pyenv virtualenv 3.11.5 my-project-env
pyenv activate my-project-env

6. Package Management Best Practices

Keeping pip Updated

Always ensure pip is current to benefit from security patches and new features:

python3.12 -m pip install --upgrade pip

Using requirements.txt

For reproducibility, freeze your dependencies into a file:

pip freeze > requirements.txt

Others (or your future self) can recreate the exact environment with:

pip install -r requirements.txt

Exploring pip-tools

For larger projects, pip-tools helps maintain clean and deterministic dependency files:

pip install pip-tools
pip-compile requirements.in
pip-sync

This resolves transitive dependencies automatically and pins exact versions, reducing conflicts.

7. Quick Comparison and Recommendations

Approach Best For
System package manager (apt, dnf) Quick setup; getting a baseline Python for system tools
Compiling from source Full control over build options and optimization flags
pyenv Developers who need multiple Python versions across projects
pyenv + pyenv-virtualenv Complete environment isolation per project with version pinning
Docker containers Production deployments and fully reproducible build environments

For beginners, starting with the system package manager and graduating to venv is perfectly adequate. For professional developers, the pyenv + virtual environment combination provides the flexibility and isolation needed across diverse codebases. For production systems, consider containerization with Docker to ensure absolute consistency from development through deployment.

Conclusion

Python's flexibility is both its greatest strength and its biggest challenge when it comes to environment setup. Plus, with so many ways to install and manage interpreters, choosing the right approach depends entirely on your workflow. Compiling from source gives you maximum control and performance tuning, while tools like pyenv abstract away version complexity and keep your system Python untouched. Virtual environments — whether through the built-in venv module or third-party tools — remain essential for maintaining clean, conflict-free projects.

This changes depending on context. Keep that in mind.

By combining these tools thoughtfully, you can build a Python development setup that scales from your first script to complex, multi-project applications. Start simple, adopt more advanced tools as your needs grow, and always document your environment so that others can replicate it effortlessly. Happy coding!

Just Dropped

Latest from Us

More of What You Like

You Might Want to Read

Thank you for reading about How To Install Python On Linux. We hope the information has been useful. Feel free to contact us if you have any questions. See you next time — don't forget to bookmark!
⌂ Back to Home