RHEL BasedRocky Linux

How To Install Python on Rocky Linux 10

Install Python on Rocky Linux 10

In this tutorial, we will show you how to install Python on Rocky Linux 10. Python stands as one of the most versatile and widely-adopted programming languages in modern software development. Whether you’re building web applications, analyzing data, developing machine learning models, or automating system tasks, Python provides the flexibility and power needed for enterprise-grade solutions. Rocky Linux 10, as a robust enterprise operating system, offers excellent compatibility with Python installations, making it an ideal platform for developers and system administrators.

This comprehensive guide will walk you through multiple methods to install Python on Rocky Linux 10, from basic package manager installations to advanced source compilation techniques. You’ll learn how to manage multiple Python versions, configure virtual environments, and implement best practices for production deployments.

Prerequisites and System Preparation

Before installing Python on your Rocky Linux 10 system, ensure you have the necessary prerequisites and properly prepare your environment for a successful installation.

System Requirements and Access

Your Rocky Linux 10 system requires sudo privileges or root access to install packages and modify system configurations. Verify your user permissions by running sudo whoami to confirm administrative access. Additionally, ensure your system has adequate disk space—at least 500MB free for basic Python installations or 2GB for comprehensive setups with development tools.

Network Connectivity and Repository Access

A stable internet connection is essential for downloading packages and dependencies. Test your network connectivity with ping google.com before proceeding. Rocky Linux 10 uses DNF as its primary package manager, which requires access to official repositories for downloading Python packages and their dependencies.

System Update Process

Begin by updating your Rocky Linux 10 system to ensure compatibility and security. Execute the following commands to refresh package repositories and upgrade existing packages:

sudo dnf check-update
sudo dnf update -y

This process updates the package metadata and installs any available security patches, creating a stable foundation for Python installation.

Installing Essential Development Tools

Install the development tools group, which includes compilers, build utilities, and libraries necessary for Python compilation and package installation:

sudo dnf groupinstall "Development Tools" -y
sudo dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make curl tar -y

These packages provide the foundation for both package manager installations and source compilation methods.

Understanding Python Versions on Rocky Linux 10

Rocky Linux 10 approaches Python installation differently than previous versions, requiring users to explicitly install their preferred Python version rather than providing a default system Python.

Default Python Availability

Unlike earlier Rocky Linux versions, Rocky Linux 10 does not include a default user-accessible Python installation. The system uses platform-python for internal operations, but this version is not intended for user applications. This design choice prevents conflicts between system operations and user-installed Python environments.

Available Python Versions

Rocky Linux 10 repositories typically offer multiple Python versions through the DNF package manager. Common available versions include Python 3.9, 3.11, and 3.12, with version availability depending on repository configurations and system architecture. Users can install multiple versions simultaneously to support different project requirements.

Version Selection Strategy

When choosing a Python version, consider your project requirements, long-term support needs, and compatibility with existing applications. Python 3.11 and 3.12 offer improved performance and new features, while Python 3.9 provides proven stability for enterprise environments.

Method 1: Installing Python via DNF Package Manager

The DNF package manager provides the most straightforward approach for installing Python on Rocky Linux 10, offering pre-compiled packages with automatic dependency resolution.

Basic Python Installation

Install Python 3 using the DNF package manager with the following command:

sudo dnf install python3 -y

This command installs the default Python 3 version available in Rocky Linux 10 repositories. The installation includes the Python interpreter, standard library, and basic development headers.

Verify the installation by checking the Python version:

python3 --version

The output displays the installed Python version, confirming successful installation.

Installing Specific Python Versions

Rocky Linux 10 repositories often provide multiple Python versions. Search for available Python packages:

sudo dnf search python | grep ^python | grep -i interpreter

This command lists all available Python interpreter packages in the repositories. Install specific versions using version-specific package names:

sudo dnf install python3.11 -y
sudo dnf install python3.12 -y

Each version installs independently, allowing parallel usage without conflicts. Access specific versions using version-specific commands like python3.11 or python3.12.

Package Management and Dependencies

The DNF installation automatically resolves and installs required dependencies, including shared libraries and development headers. This automated dependency management simplifies the installation process and ensures compatibility with system components.

Method 2: Compiling Python from Source

Source compilation offers maximum flexibility and access to the latest Python versions, enabling custom configurations and optimizations not available in repository packages.

Installing Build Dependencies

Before compiling Python from source, install comprehensive build dependencies:

sudo dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel wget curl make -y

These packages provide compilers, development headers, and libraries essential for successful Python compilation. Missing dependencies often cause compilation failures or runtime issues.

Downloading and Extracting Source Code

Navigate to a temporary directory and download the desired Python version from the official Python website:

cd /tmp
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz
tar -xf Python-3.12.0.tar.xz
cd Python-3.12.0

Always download source code from official Python repositories to ensure authenticity and security.

Configuration and Compilation Process

Configure the Python build with optimization flags for improved performance:

./configure --enable-optimizations --prefix=/usr/local

The --enable-optimizations flag enables profile-guided optimization, resulting in 10-20% performance improvements. The --prefix=/usr/local option installs Python to a standard location that doesn’t conflict with system packages.

Compile Python using multiple CPU cores for faster build times:

make -j $(nproc)

This command utilizes all available CPU cores for parallel compilation, significantly reducing build time on multi-core systems.

Installation and Verification

Install the compiled Python using the altinstall target to avoid overwriting system Python:

sudo make altinstall

The altinstall target installs Python with version-specific binaries (e.g., python3.12) rather than generic names, preventing conflicts with existing installations.

Verify the installation:

python3.12 --version
/usr/local/bin/python3.12 --version

Both commands should display the newly compiled Python version, confirming successful installation.

Python Version Management

Managing multiple Python versions effectively ensures compatibility across different projects while maintaining system stability.

Using the Alternatives System

Rocky Linux provides the alternatives system for managing multiple versions of the same software. Add Python versions to the alternatives system:

sudo alternatives --install /usr/bin/python python /usr/bin/python3.9 1
sudo alternatives --install /usr/bin/python python /usr/bin/python3.11 2
sudo alternatives --install /usr/bin/python python /usr/local/bin/python3.12 3

The priority number (last parameter) determines the default version when using the generic python command.

Configure the default Python version interactively:

sudo alternatives --config python

This command presents a menu for selecting the default Python version system-wide.

Best Practices for Version Management

Avoid modifying the system’s default Python installation to prevent breaking system tools and services. Instead, use version-specific commands (python3.11, python3.12) or virtual environments for project development. Document your Python version choices in project documentation to ensure team consistency and deployment reliability.

Installing and Managing Pip

Pip serves as Python’s package installer, enabling easy management of third-party libraries and dependencies.

Pip Installation Methods

Install pip for your Python version using DNF:

sudo dnf install python3-pip -y

For specific Python versions, install version-specific pip packages:

sudo dnf install python3.11-pip -y
sudo dnf install python3.12-pip -y

Alternatively, if you compiled Python from source, pip is typically included in the installation.

Pip Configuration and Basic Usage

Verify pip installation and check the version:

pip3 --version
pip3.11 --version
pip3.12 --version

Each Python version maintains its own pip installation, ensuring package isolation between versions.

Upgrade pip to the latest version:

python3 -m pip install --upgrade pip

This command ensures you have access to the latest pip features and security updates.

Creating and Managing Virtual Environments

Virtual environments provide isolated Python environments for individual projects, preventing dependency conflicts and ensuring reproducible deployments.

Virtual Environment Basics

Create a virtual environment using Python’s built-in venv module:

python3 -m venv project_env

This command creates a directory named project_env containing an isolated Python environment. Activate the virtual environment:

source project_env/bin/activate

Your shell prompt changes to indicate the active virtual environment:

(project_env) [user@system ~]$

Advanced Virtual Environment Management

Install packages within the virtual environment:

pip install requests numpy pandas

Packages installed in virtual environments remain isolated from system Python and other virtual environments.

Create a requirements file to document project dependencies:

pip freeze > requirements.txt

Recreate the environment on another system:

pip install -r requirements.txt

Deactivate the virtual environment when finished:

deactivate

This approach ensures consistent development environments across different systems and team members.

Testing Your Python Installation

Thorough testing validates your Python installation and ensures all components function correctly.

Basic Python Functionality Tests

Test Python interpreter access and basic functionality:

python3 -c "print('Hello, Rocky Linux!')"
python3 -c "import sys; print(sys.version)"

These commands verify interpreter functionality and display version information.

Standard Library Import Testing

Test critical standard library modules:

python3 -c "import ssl, json, urllib.request; print('Core modules working')"
python3 -c "import sqlite3, hashlib, datetime; print('Database and crypto modules working')"

Successful execution confirms proper compilation and library linking.

Package Installation Testing

Test pip functionality by installing and importing a test package:

pip3 install requests
python3 -c "import requests; print('Package installation successful')"
pip3 uninstall requests -y

This sequence tests package installation, import functionality, and cleanup procedures.

Troubleshooting Common Issues

Address common installation and configuration problems with systematic troubleshooting approaches.

Dependency and Build Issues

Missing Development Packages: Installation failures often result from missing build dependencies. Ensure all required development packages are installed:

sudo dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel

SSL Certificate Problems: SSL module compilation requires proper OpenSSL development headers. For source installations, configure with explicit OpenSSL paths:

./configure --enable-optimizations --with-openssl=/usr

This approach resolves SSL module compilation issues on Rocky Linux systems.

Path and Version Conflicts

Python Command Not Found: Newly installed Python versions may not appear in your PATH. Add custom installation directories to your PATH environment variable:

export PATH=/usr/local/bin:$PATH
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc

Multiple Version Conflicts: Use version-specific commands to avoid conflicts:

python3.11 instead of python3
pip3.11 instead of pip3

This practice ensures you’re using the intended Python version.

Security Considerations and Best Practices

Implement security measures to protect your Python installations and development environments.

Security Updates and Maintenance

Regularly update Python installations to receive security patches:

sudo dnf update python3*

For source installations, monitor Python security announcements and recompile when necessary.

Best Practices for Production Environments

User Permission Management: Avoid running Python applications as root. Create dedicated service users for Python applications:

sudo useradd -r -s /bin/false python-app

Virtual Environment Isolation: Use virtual environments in production to isolate application dependencies and simplify updates.

Advanced Configuration Options

Customize your Python environment for specific use cases and development workflows.

Environment Variables and Configuration

Configure Python behavior using environment variables:

export PYTHONPATH=/path/to/custom/modules
export PYTHONDONTWRITEBYTECODE=1
export PYTHONUNBUFFERED=1

Add these to your shell configuration file for persistent settings.

Integration with Development Tools

Configure your IDE or text editor to use specific Python versions. Most modern IDEs support virtual environment detection and can automatically configure project-specific Python interpreters.

Congratulations! You have successfully installed Python. Thanks for using this tutorial for installing Python programming language on your Rocky Linux 10 system. For additional help or useful information, we recommend you check the official Python website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button