Skip to main content
  1. Articles/

Installing Python 3.9 and Managing Multiple Versions on Mac OS X and Linux

·577 words·3 mins
articles guide python linux mac osx setup
Wing Tang Wong
Wing Tang Wong
SRE/DevOps/Platform Engineer/Software Engineer
Table of Contents

Introduction #

Python is a versatile programming language, and it’s essential to have the latest version installed on your system for leveraging the newest features and improvements. In this article, we’ll walk through the process of installing Python 3.9 or higher on Mac OS X using Homebrew and on Linux systems, specifically Ubuntu and RHEL. We’ll also explore some useful modules to have, understand how different versions of Python interact without tools like Anaconda and virtual environments, and discuss the benefits of using those two tools. Additionally, we’ll set up Python for both the Bash and Zsh shells.

Installing Python 3.9 on Mac OS X (using Homebrew) #

Homebrew is a popular package manager for macOS, making it easy to install and manage software. To install Python 3.9 or higher using Homebrew, follow these steps:

  1. Install Homebrew: If you don’t have Homebrew installed, open Terminal and run the following command:
/bin/bash -c "$(curl -fsSL"
  1. Install Python: Once Homebrew is installed, you can install Python 3.9 or higher:
brew install [email protected]

Installing Python 3.9 on Ubuntu and RHEL #

On Linux systems, Python 3.9 or higher may not be available in the default repositories, but you can use DeadSnakes PPA for Ubuntu or EPEL repository for RHEL-based systems to install it:


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


sudo dnf install
sudo dnf install python39

Useful Python Modules #

Some essential Python modules that are useful for various projects include:

  • requests: For making HTTP requests.
  • numpy: For numerical computations.
  • pandas: For data manipulation and analysis.
  • matplotlib: For creating visualizations.
  • datetime: For working with dates and times.
  • random: For generating random numbers.

Interacting with Different Python Versions #

Without tools like Anaconda and virtual environments, different Python versions can coexist on your system. However, it is essential to be mindful of the version you’re using when running scripts or executing commands. Python 3.x uses ‘python3’ or ‘python3.x’ to invoke the specific version, while Python 2.x uses ‘python’ or ‘python2.x.’

For example, to run a script with Python 3.9, you can use:


Benefits of Anaconda and Virtual Environments #

Tools like Anaconda and virtual environments provide a more structured and isolated approach to managing Python environments:

  1. Anaconda: Anaconda comes with its package manager and extensive pre-installed libraries, making it ideal for data science and machine learning projects. It also allows you to manage environments with specific Python versions and dependencies.

  2. Virtual Environments: Virtual environments, such as ‘venv,’ provide isolated Python environments, preventing conflicts between packages and dependencies. They are lightweight and are suitable for managing different project dependencies separately.

Setting up Bash and Zsh #

To use Python in your Bash and Zsh shells, you can add Python’s bin directory to your PATH variable:


echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile


echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Conclusion #

Installing Python 3.9 or higher on Mac OS X and Linux systems allows you to access the latest features of the language. Understanding how different versions interact without tools like Anaconda and virtual environments helps manage multiple versions coexisting on the same system. However, for more structured and isolated Python environments, tools like Anaconda and virtual environments provide significant benefits. Additionally, setting up Python for Bash and Zsh ensures smooth usage of Python in your preferred shell. Armed with this knowledge, you’re well-equipped to work on various Python projects and explore the ever-expanding possibilities of the language. Happy coding!