Skip to content
Create a gist now

Instantly share code, notes, and snippets.

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


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

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.