how to pip uninstall with virtualenv on heroku cedar stack?

Updated 2013-09-30: the current way to clear the virtualenv seems to specify a different python runtime version in runtime.txt as stated on Github and in the Heroku’s devcenter reference.

Be aware that Heroku currently “only endorses and supports the use of Python 2.7.4 and 3.3.2” so unless your application supports both Python 2.7.4 and 3.3.2, you may want to test it with the runtime you’ll want to switch to (currently available at http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2, though it shouldn’t be an issue to switch e.g. between 2.7.4 and 2.7.3 in most cases).

Thanks @Jesse for your up-to-date answer and to the commenters who made me aware of the issue.


Was up-to-date in ~november 2012 (I haven’t since updated the linked buildpack, my pull request was closed and the CLEAN_VIRTUALENV feature was dropped at some point by the official buildpack):

As David explained, you cannot pip uninstall one package but you can purge and reinstall the whole virtualenv. Use the user-env-compile lab feature with the CLEAN_VIRTUALENV option to purge the virtualenv:

heroku labs:enable user-env-compile
heroku config:add CLEAN_VIRTUALENV=true

Currently this won’t work because there is a bug. You’ll need to use my fork of the buildpack until this get fixed upstream (pull request was closed) :

heroku config:add BUILDPACK_URL=https://github.com/blaze33/heroku-buildpack-python.git

Now push your new code and you’ll notice that the whole virtualenv gets reinstalled.

Andrey’s answer no longer works since March 23 2012. The new style virtualenv commit moved the virtual env from /app to /app/.heroku/venv but the purge branch wasn’t updated to catch up so that you end up with a virtualenv not being in PYTHONHOME.

To avoid reinstalling everything after each push, disable the option:

heroku labs:disable user-env-compile
heroku config:remove CLEAN_VIRTUALENV BUILDPACK_URL

Leave a Comment