public
Last active

Install Python 2.7 (homebrew + pip + virtualenv) on Mac OS X Lion

  • Download Gist
gistfile1.md
Markdown

Install Python

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

Symlinks...

$ 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...
PATH=${PATH}:/usr/local/share/python

# Python
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
if [[ -r /usr/local/share/python/virtualenvwrapper.sh ]]; then
    source /usr/local/share/python/virtualenvwrapper.sh
else
    echo "WARNING: Can't find virtualenvwrapper.sh"
fi

Install virtualenv

$ pip install virtualenv 
$ pip install virtualenvwrapper

Test setup

$ mkvirtualenv test 
$ rmvirtualenv test

Hi,

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

Thanks!

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):
PATH=/usr/local/share/python:/usr/local/bin/:${PATH}

This was super helpful :)

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

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

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:
    --universal

I get a:

WARNING: Can't find virtualenvwrapper.sh

From the .bashrc

I had to change from:

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

to

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

to make it work, because virtualenvwrapper.sh 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!

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.

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.