Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
python 2.7.5 install on OSX (10.8+) using brew (pip, easy_install, virtualenv, virtualenvwrapper)
# In case you had some strange python installation
# NOTE: .pydistutils.cfg seems to be not compatible with brew install python
# areas I needed to clean before installation
# clean up ~/Library/Python
# clean up .local
# preconditions:
# xcode with command line tools installed
xcode-select --install
# homebrew:
brew install python --framework
#### update/create your .bash_profile
export PATH=/usr/local/bin:/usr/local/sbin:${PATH}
#virtualenv wrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/
#### end of .bash_login
# start new shell and make sure you are using /usr/local/bin/python
# note that it will complain that /usr/local/bin/ does not exist
# as we havent installed virtualenvwrapper yet
which python
python --version
# make sure its python >=2.7.5
# time to install virtualenvironment
pip install virtualenvwrapper
mkdir $HOME/.virtualenvs
# start new shell and from now on you will have access to mkvirtualenv
# NOTE: that the only time you should be asked for yout password is during homebrew installation
# if all goes correctly than none of above commands would ask you for your passoword / would want you to use sudo

fffabs commented Jul 19, 2011

As recommended here it's probably best to use
brew install python --framework
to compile a Framework-style Python build, rather than a UNIX-style build.


munhitsu commented Jul 19, 2011

Nice finding, just updating - thanks!

PS: I'll need to check their recommendation to install pip through brew
brew install pip

fffabs commented Jul 19, 2011

Good idea! I just checked it, brew doesn't have that formula anymore, so I did it via Distribute:

$ curl -O
$ python
$ easy_install pip

This was helpful for me today...thanks!


munhitsu commented Mar 21, 2012

I'm glad to hear it!

tpisto commented Sep 3, 2012

Saved much time today! Thanks!


munhitsu commented Jul 12, 2013

updated to capture 10.8 and homebrew changes


munhitsu commented Aug 13, 2013

Updated from .bash_login to .bash_profile to avoid common issues

A quote from man bash:
"When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable."


munhitsu commented Jan 4, 2016

On OSX 10.11 I prefer to keep brew outside of /usr/local as it interferes with newly introduced OSX filesystem protection.
I typically just clone homebrew to /brew

thanks for this!

nitpick: in the note: "Updated from .bash_login to .bash_profile to avoid common issues"
it seems that you may have forgotten to update line 23, so the start and end markers are consistent.

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