Оновлено знову:
Наступний метод може не працювати в новіших версіях virtualenv. Перш ніж спробувати внести зміни в старий virtualenv, слід зберегти залежності у файлі вимог (pip freeze > requirements.txt) та зробити резервну копію його деінде. Якщо щось піде не так, ви все одно можете створити новий virtualenv і встановити в ньому старі залежності (pip install -r requirements.txt).
Оновлено: я змінив відповідь через 5 місяців після того, як первинно відповів. Наступний спосіб більш зручний і надійний.
Побічний ефект: він також фіксуєSymbol not found: _SSLv2_methodвиняток, коли ви робитеimport sslу віртуальному середовищі після оновлення Python до v2.7.8.
Примітка: В даний час, це тільки 2.7.x Python .
Якщо ви використовуєте Homebrew Python в OS X, спочатку deactivatevirtualenv, а потім оновіть Python:
brew update && brew upgrade python
Виконайте такі команди ( <EXISTING_ENV_PATH>це шлях вашого віртуального середовища):
cd <EXISTING_ENV_PATH>
rm .Python
rm bin/pip{,2,2.7}
rm bin/python{,2,2.7}
rm -r include/python2.7
rm lib/python2.7/*
rm -r lib/python2.7/distutils
rm lib/python2.7/site-packages/easy_install.*
rm -r lib/python2.7/site-packages/pip
rm -r lib/python2.7/site-packages/pip-*.dist-info
rm -r lib/python2.7/site-packages/setuptools
rm -r lib/python2.7/site-packages/setuptools-*.dist-info
Нарешті, створіть своє віртуальне середовище:
virtualenv <EXISTING_ENV_PATH>
Тим самим старі основні файли Python та стандартні бібліотеки (плюс setuptoolsта pip) видаляються, а власні бібліотеки встановлюються вsite-packages них, зберігаються та працюють, як тільки вони перебувають у чистому Python. Щоб справно функціонувати, бінарні бібліотеки можуть або не потрібно перевстановлювати.
Це працювало для мене у 5 віртуальних середовищах із встановленим Django.
BTW, якщо ./manage.py compilemessagesпісля цього не працює, спробуйте:
brew install gettext && brew link gettext --force