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.
2to3 or not 2to3?
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.
Upgrading to Python 3 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.
2. Double-click the downloaded package and run the Python 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.
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.
Launching Python 3 from the Terminal
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.
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.
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.
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.)
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.
3. Chose “File > Open…” from the menu bar. Then, select the Python program you want to run.
4. The selected program will now run. GUI programs will launch their visual interface, and scripts will run in the Terminal window.
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.
Conclusion
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:
One thought on “Installing and Using Python 3 On Your Mac”
You should mention pyenv as an alternative way to install and manage multiple versions of Python, including Python3. It can be installed via homebrew.