Installing and Using Python 3 On Your Mac


When you get a brand-new Mac, you might assume it’s loaded up with brand-new software. And for most apps, you’d be right. For underlying frameworks, however, it’s a different story. Brand-new Macs fresh from the factory floor still ship with Python 2.7.10, even though the most recent stable release is Python 3.6.1. This might seem like a pretty significant gap between versions, and that’s because it is. But newer isn’t always better. Python 2 is still the default language, but that’s likely to change in the coming years.

python 3 mac

 

It’s natural think that Python 3 is better because it’s newer. They wouldn’t be totally wrong: Python 3 includes some cool new features that Python 2 lacks. However, alongside those new features, Python 3 also has a problem. It’s not backwards compatible with Python 2. That means that programs written for a Python 2 interpreter won’t run on a Python 3 interpreter. Even fundamental commands like print and integer comparison work differently between Python 2 and 3, complicating the process of moving from one language to another. You can check out a list of the most significant changes on the Python 3.0 documentation.

But why hasn’t the whole world switched over to Python 3? The main problem is that there’s a lack of compelling motivation. Python 2 is a strong language, and only power users will get to experience the full benefit of Python 3’s new features. Plus, Python 2.7.10 is pre-installed on all Macs and a number of Linux distros. With the significant differences between the two versions and the work required to convert from 2 to 3, it’s hard to find strong reasons to move Python 2 apps to Python 3. It’s true that utilities like 2to3 make it easier to transform a Python 2 program into valid Python 3 syntax, but if you’ve ever used Google Translate, you know this won’t be perfect.

Unfortunately, Python 2 isn’t going to be around forever. The developers have set 2020 as the final year for Python 2 support, and everyone will need to transition their programs over to Python 3 by then. If you’re writing new programs in Python, you might be interested in starting to use Python 3. But first, you’ll need to install a Python 3 interpreter on your Mac.

Even if it isn’t the de facto standard, you can run Python 3 on your Mac today. You can even run it alongside a concurrent Python 2.7 installation without affecting the version 2.7 installation.

1. Download the most recent package from the Python website.

python 3 mac download page

 

2. Double-click the downloaded package and run the Python installer.

python 3 mac installer

3. Once the installer is finished, you’ll find a new Python 3.6.1 folder inside of the Applications directory. The installer also installed the Python interpreter and binaries in your /usr/local/bin folder.

python 3 mac application folder

 

4. This folder contains a GUI for launching Python applications called Python Launcher. It also includes IDLE, an IDE for developing Python applications, a link to Python’s documentation and miscellaneous documents.

python 3 mac application contents

 

1. If you want to run a Python 3 script or application from the command line, you’ll need to use the command  python3. Notice the difference when compared to the python command, which runs Python 2.7. If you end up using Python 3 as your primary interpreter, you can change this alias, but python3 is the default.

python 3 mac command line

2. Without additional arguments, the python3 command will invoke the Python 3 interactive interpreter. This allows you to type Python 3 code into the Terminal and run it on a line-by-line basis.

python 3 mac command line

3. If you do something a little more useful and run a script with the Python 3 interpreter, follow the python3 command with the path to your .py file.

python 3 mac command line

 

Launching Python 3 from the GUI

You can also run Python 3 programs from the Python Launcher GUI.

1. Open the Python Launcher found in “/Applications/Python 3.6.1.” (Note that the version number in the Python folder’s name will change with future versions of Python. Just look for the one that starts with a 3.)

python 3 mac application launcher

 

2. This opens the Preferences window for the launcher. The application is set to run everything with a Python 2 interpreter by default, but we can change that. Change the path under “Interpreter” to “/usr/local/bin/python3”, which is the default directory of the Python 3 interpreter.

python 3 mac launcher preferences

python 3 mac launcher preferences 2

3. Chose “File > Open…” from the menu bar. Then, select the Python program you want to run.

python 3 mac launcher open app

4. The selected program will now run. GUI programs will launch their visual interface, and scripts will run in the Terminal window.

python 3 mac launcher run app

 

You can also run Python programs with the GUI by adding the Python launcher icon to your Dock and dragging Python scripts on top of it.

Getting Python 3 running on your Mac ins’t hard. However, changing your coding habits can take some time. If you’ve been writing Python 2 for a while now, switching to Python 3 can be a tedious and frustrating process. You’ll have to update your knowledge eventually, however, so you may as well get started now, while you’ve got a couple of years ahead of you.

You might also like:

Troubleshoot Mac Issues with Console
Create a Bootable Clone of Your Mac for Easy Backup
The Best Mac Backup Strategies You Should Use Today

Kokou Adzo

Kokou Adzo is a stalwart in the tech journalism community, has been chronicling the ever-evolving world of Apple products and innovations for over a decade. As a Senior Author at Apple Gazette, Kokou combines a deep passion for technology with an innate ability to translate complex tech jargon into relatable insights for everyday users.

One Comment

Your email address will not be published. Required fields are marked *

  1. You should mention pyenv as an alternative way to install and manage multiple versions of Python, including Python3. It can be installed via homebrew.