Packages change pretty frequently when you're using Homebrew on OSX, including Python.
I noticed that I had several instances of lots of large packages installed (Boot, MacVim,
Python, etc) so I ran brew cleanup
and that freed up approx 9 gigs of disk! Unfortunately
it also broke many virtual environments since the version of python that they were pointing
at no longer existed.
What to do what to do…
Based on this Stack Overflow question I wrote a script to update a single virtual environment or all
of them.
Note, this only updates virtual enviroments created with virtualenvwrapper. Also, you may have to reinstall your packages, but hopefully not.
#!/bin/bash
if [ -z "$1" ]; then
echo "usage: $0 virtualenv|all"
exit 1
fi
if [ -z "$WORKON_HOME" ]; then
echo "you must export WORKON_HOME"
exit 1
fi
if [ "$1" = "all" ]; then
echo "udpating all virtualenvs"
cd $WORKON_HOME
for name in $(find . -type d -maxdepth 1 -mindepth 1|xargs -n1 basename); do
$0 $name
done
exit 0
fi
cd $WORKON_HOME
virtenv="$WORKON_HOME/$1"
echo "deleteing $1"
rm -f $virtenv/.Python
rm -f $virtenv/bin/pip
rm -f $virtenv/bin/pip2
rm -f $virtenv/bin/pip2.7
rm -f $virtenv/bin/python
rm -f $virtenv/bin/python2
rm -f $virtenv/bin/python2.7
rm -fr $virtenv/include
rm -f $virtenv/lib/python2.7/* 2> /dev/null
rm -fr $virtenv/lib/python2.7/distutils
rm -f $virtenv/lib/python2.7/site-packages/easy_install.*
rm -fr $virtenv/lib/python2.7/site-packages/pip
rm -fr $virtenv/lib/python2.7/site-packages/pip-*.dist-info
rm -fr $virtenv/lib/python2.7/site-packages/setuptools
rm -fr $virtenv/lib/python2.7/site-packages/setuptools-*.dist-info
source `which virtualenvwrapper.sh`
echo "creating $1"
mkvirtualenv -q $1