Skip to content

Instantly share code, notes, and snippets.

@pithyless
Created September 10, 2011 21:49
Show Gist options
  • Select an option

  • Save pithyless/1208841 to your computer and use it in GitHub Desktop.

Select an option

Save pithyless/1208841 to your computer and use it in GitHub Desktop.
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

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
@erasmospunk
Copy link
Copy Markdown

Hi,

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

Thanks!

@pithyless
Copy link
Copy Markdown
Author

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

@erasmospunk
Copy link
Copy Markdown

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}

@joe--
Copy link
Copy Markdown

joe-- commented Nov 14, 2012

This was super helpful :)

@johnhaitas
Copy link
Copy Markdown

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

@benguillet
Copy link
Copy Markdown

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

@skull-squadron
Copy link
Copy Markdown

Helpful 👍

@newtoncalegari
Copy link
Copy Markdown

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

@bigfolio
Copy link
Copy Markdown

bigfolio commented Jul 2, 2013

I get a:

WARNING: Can't find virtualenvwrapper.sh

From the .bashrc

@sbrieuc
Copy link
Copy Markdown

sbrieuc commented Aug 6, 2013

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.

@the-shank
Copy link
Copy Markdown

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

@mistydemeo
Copy link
Copy Markdown

$ brew install python --universal --framework

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

@shurane
Copy link
Copy Markdown

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
Copy link
Copy Markdown

bdejong commented Sep 3, 2014

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

Also seems to be more recent...

@huanghaihui
Copy link
Copy Markdown

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

@yodaqua
Copy link
Copy Markdown

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