Skip to content

@munhitsu /gist:1034876
Last active

Embed URL


Subversion checkout URL

You can clone with
Download ZIP
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

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.


Nice finding, just updating - thanks!

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


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!


I'm glad to hear it!


Saved much time today! Thanks!


updated to capture 10.8 and homebrew changes


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."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.