RHEL BasedRocky Linux

How To Install Matplotlib on Rocky Linux 9

Install Matplotlib on Rocky Linux 9

Matplotlib stands as one of the most essential Python libraries for data visualization, scientific computing, and statistical analysis. For developers and data scientists working on Rocky Linux 9, understanding how to properly install and configure Matplotlib is crucial for creating compelling visualizations and conducting data analysis projects. This comprehensive guide walks you through multiple installation methods, troubleshooting common issues, and implementing best practices for a robust Python development environment.

Rocky Linux 9, as the successor to CentOS, provides a stable and secure foundation for scientific computing applications. With its enterprise-grade reliability and extensive package repositories, Rocky Linux 9 offers multiple pathways for installing Matplotlib, each suited to different use cases and requirements.

Understanding Rocky Linux 9 and Python Environment

Rocky Linux 9 Overview

Rocky Linux 9 emerges as a community-driven enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux 9. The distribution comes with Python pre-installed, specifically Python 3.9.16, making it immediately ready for development work. The DNF package manager serves as the primary tool for system-level package installation, offering superior dependency resolution compared to its predecessor YUM.

The operating system’s architecture supports both system-wide and user-specific Python installations. This flexibility allows developers to maintain clean separation between system dependencies and project-specific requirements. Rocky Linux 9’s package repositories include PowerTools (now called CRB – Code Ready Builder), which contains additional development packages essential for scientific computing libraries like Matplotlib.

Python Environment on Rocky Linux 9

Rocky Linux 9 ships with Python 3.9.16 as the default interpreter. However, the repositories also provide access to newer Python versions including Python 3.11 and Python 3.12. You can verify your current Python installation by running:

python3 --version

The system maintains symbolic links where python3 points to the default python3.9 installation. For users requiring multiple Python versions, Rocky Linux 9 supports parallel installations without conflicts. The package management system distinguishes between DNF-managed system packages and pip-managed user packages, providing clear separation of concerns for dependency management.

System Prerequisites and Preparation

System Requirements

Before installing Matplotlib, ensure your Rocky Linux 9 system meets the basic requirements. Matplotlib requires sufficient memory for rendering complex visualizations, particularly when working with large datasets. A minimum of 2GB RAM is recommended, though 4GB or more provides optimal performance for intensive plotting operations.

User privileges play a crucial role in the installation process. While some methods require sudo access for system-wide installations, others can be performed with regular user permissions when using virtual environments or user-local installations.

System Updates and Essential Tools

Begin by updating your system to ensure all packages are current and security patches are applied:

sudo dnf check-update
sudo dnf update -y

Install the essential development tools group, which provides compilers and build utilities necessary for compiling Python packages with native extensions:

sudo dnf groupinstall "Development Tools" -y
sudo dnf install python3-devel -y

These development tools are particularly important when installing Matplotlib via pip, as some dependencies may require compilation from source code.

Python and Pip Installation

Verify that Python 3 is properly installed and accessible:

python3 --version

Install pip, the Python package installer, which serves as the primary tool for managing Python packages from PyPI:

sudo dnf install python3-pip -y

Confirm the pip installation and check its version:

pip3 --version

Installation Methods for Matplotlib

Method 1: Using DNF Package Manager

The DNF package manager approach provides the most straightforward system-wide installation of Matplotlib. This method leverages Rocky Linux’s native package management system and ensures proper integration with system dependencies.

Install Matplotlib using the DNF package manager:

sudo dnf install python3-matplotlib -y

However, you may encounter dependency issues, particularly with the libqhull library. If you receive an error about missing libqhull.so.7, enable the PowerTools repository:

sudo dnf config-manager --set-enabled powertools
sudo dnf install --enablerepo "powertools" python3-matplotlib -y

For newer Rocky Linux 9 versions, the PowerTools repository may be named differently:

sudo dnf config-manager --set-enabled crb
sudo dnf install python3-matplotlib -y

Advantages of DNF Installation:

  • Automatic dependency resolution
  • System-wide availability for all users
  • Integration with system security updates
  • No compilation required

Disadvantages:

  • Potentially older Matplotlib versions
  • Limited control over specific version requirements
  • System-wide changes affect all users

Method 2: Using Pip

The pip installation method offers access to the latest Matplotlib versions and provides more granular control over the installation process. This approach downloads packages directly from the Python Package Index (PyPI).

First, ensure pip is updated to the latest version:

python3 -m pip install --upgrade pip --user

Install Matplotlib using pip:

pip3 install matplotlib --user

For system-wide installation (requires sudo privileges):

sudo pip3 install matplotlib

To install the latest development version or a specific version:

pip3 install matplotlib==3.8.2 --user

When encountering compilation issues, use the --prefer-binary flag to prioritize pre-compiled wheel packages:

pip3 install matplotlib --prefer-binary --user

Benefits of Pip Installation:

  • Access to latest versions
  • Version-specific installations
  • Easy package updates and management
  • User-local installations without sudo

Method 3: Virtual Environment Installation

Virtual environments provide isolated Python environments for project-specific dependencies. This method prevents conflicts between different projects and maintains clean separation of package versions.

Create a new virtual environment:

python3 -m venv my_matplotlib_env

Activate the virtual environment:

source my_matplotlib_env/bin/activate

Install Matplotlib within the virtual environment:

pip install matplotlib

The virtual environment approach offers complete isolation and reproducibility. When finished working, deactivate the environment:

deactivate

Virtual Environment Benefits:

  • Project isolation
  • No system-wide changes
  • Easy environment replication
  • Version conflict prevention

Installation Verification and Testing

Basic Import Test

Verify your Matplotlib installation by testing the import functionality. Open the Python interpreter:

python3

Within the Python interpreter, attempt to import Matplotlib and check its installation details:

import matplotlib
print(matplotlib.__version__)
print(matplotlib.__file__)

A successful installation displays the version number and installation path. Exit the Python interpreter by typing exit() or pressing Ctrl+D.

Creating Test Plot

Create a simple test script to verify Matplotlib’s plotting capabilities. Create a file named test_matplotlib.py:

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

# Create a simple plot
plt.figure(figsize=(8, 6))
plt.plot(x, y, 'b-', linewidth=2)
plt.title('Test Matplotlib Installation')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.grid(True)
plt.savefig('test_plot.png')
print("Plot saved as test_plot.png")

Execute the test script:

python3 test_matplotlib.py

Successful execution creates a PNG file demonstrating Matplotlib’s functionality.

Advanced Verification

Test different Matplotlib backends to ensure comprehensive functionality:

import matplotlib
print("Available backends:", matplotlib.backend_bases.Backend.registry.keys())
print("Current backend:", matplotlib.get_backend())

This verification helps identify any backend-specific issues that might affect plot rendering or saving capabilities.

Troubleshooting Common Issues

Dependency Resolution Problems

The most common installation issue involves missing dependencies, particularly the libqhull library. When encountering dependency conflicts:

1. Enable the PowerTools/CRB repository:

sudo dnf config-manager --set-enabled powertools

2. Install missing dependencies manually:

sudo dnf install qhull-devel libqhull -y

3. Retry the Matplotlib installation:

sudo dnf install python3-matplotlib -y

For compilation issues when using pip, install additional development packages:

sudo dnf install gcc-c++ freetype-devel libpng-devel -y

Permission and Access Issues

Avoid using pip with sudo privileges for user installations. Instead, use the --user flag to install packages in the user’s home directory:

pip3 install matplotlib --user

This approach prevents permission conflicts and maintains security best practices. For system-wide installations requiring administrative access, use virtual environments or the DNF package manager.

Version Conflicts and Compatibility

When managing multiple Python versions, specify the exact Python executable:

python3.9 -m pip install matplotlib --user
python3.11 -m pip install matplotlib --user

Check NumPy compatibility, as Matplotlib depends on specific NumPy versions. Install compatible versions together:

pip3 install numpy matplotlib --user

Resolve conflicts by creating fresh virtual environments for problematic projects:

python3 -m venv clean_env
source clean_env/bin/activate
pip install matplotlib

Best Practices and Optimization

Virtual Environment Best Practices

Establish consistent naming conventions for virtual environments based on project names or purposes. Create a dedicated directory for all virtual environments:

mkdir ~/python_envs
python3 -m venv ~/python_envs/data_analysis
source ~/python_envs/data_analysis/bin/activate

Generate requirements files to ensure reproducible environments:

pip freeze > requirements.txt

Install packages from requirements files in new environments:

pip install -r requirements.txt

System Maintenance

Regularly update pip and installed packages to maintain security and access new features:

pip3 install --upgrade pip --user
pip3 list --outdated --user
pip3 install --upgrade matplotlib --user

Monitor system package updates through DNF:

sudo dnf check-update
sudo dnf update python3-matplotlib -y

Implement automated backup strategies for virtual environments and project configurations to ensure quick recovery from system changes.

Advanced Configuration and Integration

Development Environment Setup

Enhance your Python development environment by installing complementary tools. Install Visual Studio Code for advanced editing capabilities:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
sudo dnf check-update
sudo dnf install code -y

Configure Git for version control:

sudo dnf install git -y
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Docker Integration

For containerized development workflows, install Docker on Rocky Linux 9:

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
sudo systemctl enable --now docker

Create Docker containers with pre-configured Matplotlib environments for consistent development across different systems and teams.

Performance Optimization and Advanced Features

Configure Matplotlib for optimal performance in production environments. Set appropriate backends for different use cases:

import matplotlib
matplotlib.use('Agg')  # For server environments without display

Optimize memory usage for large datasets by configuring Matplotlib’s cache settings and using appropriate data types for plotting operations.

Consider installing additional fonts and rendering engines to enhance plot quality and support international character sets:

sudo dnf install liberation-fonts-common liberation-sans-fonts -y

Security Considerations

Maintain security best practices when installing Python packages. Verify package authenticity and use trusted repositories. Regularly update all components to address security vulnerabilities:

sudo dnf update --security -y
pip3 install --upgrade matplotlib --user

Implement user permission controls and avoid running pip with elevated privileges unless absolutely necessary for system-wide installations.

Congratulations! You have successfully installed Matplotlib. Thanks for using this tutorial for installing Matplotlib on Rocky Linux 9 system. For additional help or useful information, we recommend you check the official Matplotlib 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