Create a gist now

Instantly share code, notes, and snippets.

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} ?



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.

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