Skip to content

RESOURCES / BLOG

How to Update Python (Without Breaking Your Projects)

Hey folks,

I’m working on a project that uses Python to automate image uploads and tagging via Cloudinary. Recently, I noticed some packages I want to use need a newer version of Python. I’m a bit nervous about updating Python because I don’t want to break existing scripts or environments.

Can someone walk me through how to update Python safely on Windows or macOS, and ideally without messing up my current setup?

Appreciate it!

Absolutely, keeping Python updated is a smart move, especially as new features, performance improvements, and security fixes are released regularly. That said, you’re right to be cautious: updating Python improperly can lead to broken virtual environments or compatibility issues with existing scripts.

Open Command Prompt and run:

bash

python --version

If this returns something like Python 3.8.10 and you want the latest (say 3.12+), it’s time to update.

Go to the official Python site and download the Windows installer for the latest stable version.

Important:

  • Select Add Python to PATH before clicking Install.
  • Choose Upgrade Now if you’re replacing the existing version.
  • Alternatively, choose Customize Installation to install alongside your current version (recommended if you want to test first).

After installation, reopen the Command Prompt:

bash

python --version

It should now show the updated version (e.g., Python 3.12.0).

In Terminal:

bash

python3 --version

macOS usually ships with an older Python version (e.g., 2.7 or 3.8), which you don’t want to mess with.

If you don’t have Homebrew, install it:

bash

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Then install the latest Python:

bash

brew install python

This installs Python 3 (e.g., Python 3.12+) as python3.

Ensure /opt/homebrew/bin (or similar) is in your shell config (like .zshrc or .bash_profile):

bash

export PATH="/opt/homebrew/bin:$PATH"

Then restart Terminal and check:

bash

python3 --version

Most distributions include Python 3, but it might not be the latest. Use a tool like deadsnakes (Ubuntu) or uv for version management.

For Ubuntu:

sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt update

sudo apt install python<version>Code language: HTML, XML (xml)

For Fedora:

# Fedora 42 ships with Python 3.13 by default, but if you want to install a different version, try:
sudo dnf install python<version>Code language: PHP (php)

bash

python -m ensurepip --upgrade

python -m pip install --upgrade pip

Your old virtual environments will use the old Python path. It’s best to create new ones after updating:

bash

python -m venv new_env

Then reinstall packages:

bash

source new_env/bin/activate

pip install cloudinary pillow requests

uv is quickly gaining traction among Python developers because it’s blazingly fast, all-in-one, and written in Rust. Unlike traditional tools like pip, virtualenv, or pyenv, uv combines dependency management, packaging, and Python version management into a single, streamlined experience.

One standout feature is its ability to manage multiple Python versions without external tools. With uv, you can automatically download and use specific Python versions per project using the uv venv command. It ensures that your virtual environment uses the correct interpreter, even across different machines or CI pipelines.

For example:

uv venv --python 3.11Code language: CSS (css)

This will create a virtual environment using Python 3.11 — even if it’s not installed system-wide. No more juggling pyenv, asdf, or downloading installers manually.

Plus, uv installs dependencies much faster than pip, thanks to parallel resolution and caching. It supports pyproject.toml out of the box and works seamlessly with modern workflows.

If you’re looking for a one-stop solution that simplifies Python environment management while saving time, uv is worth checking out.

PlatformMethodNotes
WindowsDownload the installer from python.orgUse “Add to PATH” and “Upgrade Now”
macOSUse Homebrew (brew install python)Adds python3 binary
LinuxUse apt, pyenv, or source buildAvoid overwriting the system Python
AllRecreate virtual environmentsMatch pip and Python versions

Updating Python is a necessary step to future-proof your development environment, especially when working with modern libraries, APIs, or services like Cloudinary. The good news is it’s easy if you follow platform-specific instructions and take precautions with your virtual environments (or update your tooling to Poetry and uv).

Start Using Cloudinary

Sign up for our free plan and start creating stunning visual experiences in minutes.

Sign Up for Free