Оновлено знову:
Наступний метод може не працювати в новіших версіях 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, спочатку deactivate
virtualenv, а потім оновіть 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