How to Upgrade Your Mac to Python 3

| How-To

For those who are learning Python on a Mac, it may be slightly frustrating that Apple doesn't provide the latest version, typically used when learning Python these days. Here's a short and sweet Q&A session on what you need to know to download and install the latest version of Python (3.4.1).

1. Why is Apple only providing Python 2.x?

As the Python website says, "Python 2.x is legacy, Python 3.x is the present and future of the language." Briefly, in order to move forward technically as a language, the creator, Guido van Rossum, needed to make some significant internal changes. To do this, backwards compatibility had to be compromised. As a result, the 3.x version can't be depended on to run 2.x scripts.

There are large libraries for Python 2.x and many users still need to use it, so Python 2.7.x is installed in OS X by default. Even OS X 10.10 Yosemite provides Python 2.7.x. So when should you use version 2 and when should you use the latest release, 3.4? The Python.org site says:

Firstly, if you're deploying to an environment you don't control, that may impose a specific version, rather than allowing you a free selection from the available versions.

Secondly, if you want to use a specific third party package or utility that doesn't yet have a released version that is compatible with Python 3, and porting that package is a non-trivial task, you may choose to use Python 2 in order to retain access to that package.

Alternatively, if you're a newbie to the language and/or your class instructor insists that you begin by learning 3.x, then you'll need to install it on your Mac. It's particularly easy to do because 1) There's an OS X installer package that does all the work and 2) You can still run both versions, so there's no penalty to installing 3.x.

2. Where can I get Python 3.x?

Go to the Python website's download page. It should auto-detect that you're on a Mac and offer you some options. You're probably wanting 3.4.1. The interesting part of the page will look something like this:

 

 

You'll be downloading an OS X .dmg file called "python-3.4.1-macosx10.6.dmg" to your downloads folder. (The 10.6 notation means you need at least OS X Snow Leopard to run it.) When you double-click it, it will mount on your desktop as a volume. Open the DMG, and you'll see this:

3. What do I need to know before installing?

It's important that you read the file "ReadMe.txt". There, you'll discover, along with other things, that you may not be able to just double-click the installer, "Python.mpkg" because it's not signed by Apple. (Whether you can double-click it will depend on how you have your Gatekeeper settings set in System Preferences > Security & Privacy > General.)  If you try it, you may see this.  Ignore it and move on. to step #3.

There are other details in that ReadMe.txt file about pip and IDLE that are beyond the scope of this how-to but will be of interest to anyone learning the language.

3. How do I install Python 3 and where does it get installed?

If you're using the OS X default setting for Gatekeeper, you'll need to right-click the installer package and select:

Open with ... Installer.app

Like this:

 

This will work. Then, you'll be walked through the installation in standard form for an installer. Of note is the introductory page where it notes that your .bash_profile will be updated to point to Python 3.4.1 as the command "python3."

Unlike Apple's default install of 2.x, the version 3.x that you're installing goes into your own library folder. Using the symbol ~ as a shorthand for /Users/<your acct name>, then we can write the location as:

~/Library/Frameworks/Python.framework/Versions/3.4/bin/python3

4. How do I run Python 3?

The installer added the path for the above to your default path in .bash_profile so that when you type:

python3

on the command line, the system can find it.  You'll know you've been successful if you see the Python interpreter launch.

Exit the interpreter with CTRL-D.

5. How do I run the older 2.x versions?

If you look at:

/System/Library/Frameworks/Python.framework/Versions and /usr/bin

you'll see that several older 2.x versions are already installed. To get to the latest 2.x version, and that shouldn't change because 2.x isn't being updated anymore, you can, on the command line, type:

python

Alternatively, you can enter the commands python2.5 or python2.6 to get to those older versions if needed.

6. Where can I learn more?

There is a boatload of friendly information about Python at their website. It's beautifully laid out. If you're in a learning mode, here are some good books:

1. Absolute beginner with no experience programming a computer. "Python Programming" by Michael Dawson.

2. For those who know a little programming. "Python Programming" by John Zelle.

3. For experienced programmers who want to learn Python. "Learning Python" by Mark Lutz. This book (5th edition) covers both 2.x and 3.x.

Comments

Ricky Spero

Nice summary, John! One tip: if you want total flexibility in terms of what version of python—-and which packages—-you have installed, check out [virtualenv](https://pypi.python.org/pypi/virtualenv) and [virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/en/latest/), which create sandboxed environments for python projects.

Sergey Fedoseev

Could you say if this works on OS X 10.10?
/usr/bin/env python2

Log-in to comment