Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Install Python 2.7 (homebrew + pip + virtualenv) on Mac OS X Lion

Install Python

$ brew install readline sqlite gdbm
$ brew install python --universal --framework
$ python --version
Python 2.7


$ mkdir ~/Frameworks
$ ln -s "/usr/local/Cellar/python/2.7.2/Frameworks/Python.framework" ~/Frameworks
$ /usr/local/share/python/easy_install pip
$ /usr/local/share/python/pip install --upgrade distribute

Add to .bashrc:

# Before other PATHs...

# Python
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
if [[ -r /usr/local/share/python/ ]]; then
    source /usr/local/share/python/
    echo "WARNING: Can't find"

Install virtualenv

$ pip install virtualenv 
$ pip install virtualenvwrapper

Test setup

$ mkvirtualenv test 
$ rmvirtualenv test


Is there a reason you put PATH=${PATH}:/usr/local/share/python instead of PATH=/usr/local/share/python:${PATH} ?



pithyless commented Jun 13, 2012

Hmmmm... I can't recall any reason this would be. It looks like a typo. (I don't have my MacBook around to verify)

So with these steps I get the virtualenv running with py2.7.3 but in the normal command line I get the system's py2.7.1...

To have the latest python in normal enviroment I have this in .bashrc (that is loaded from .bash_profile):

joe-- commented Nov 14, 2012

This was super helpful :)

brew install readline sqlite gdbm
brew install readline sqlite gdbm --universal
helped me

Same than @johnhaitas, add to add the --universal for the install of readline sqlite and gdbm

Helpful 👍

I had to add the --universal for the install the sqlite and gdbm because when I tried to install python it showed this error:

Error: python dependency sqlite not installed with:

bigfolio commented Jul 2, 2013

I get a:

WARNING: Can't find

From the .bashrc

sbrieuc commented Aug 6, 2013

I had to change from:

    if [[ -r /usr/local/share/python/ ]]; then
        source /usr/local/share/python/


    if [[ -r /usr/local/bin/ ]]; then
        source /usr/local/bin/

to make it work, because got installed there.

Thanks for this.

Just wanted to point out that I had to do this

brew install readline sqlite gdbm --universal

to get it to work

$ brew install python --universal --framework

Homebrew already does dependency resolution - no need for this line!

shurane commented Feb 13, 2014

A lot has changed in homebrew and these instructions are out of date. brew install --universal should take care of most of your problems. Also take a look at brew info python for installation instructions.

bdejong commented Sep 3, 2014

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
if [[ -r /usr/local/bin/ ]]; then
    source /usr/local/bin/
    echo "WARNING: Can't find"

Also seems to be more recent...

After install python, I find easy_install, and so on in /usr/local/bin not in /usr/local/share/python. just like bdejong shows above.

yodaqua commented Apr 15, 2017

still useful, thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment