Zaktualizowany ponownie:
Poniższa metoda może nie działać w nowszych wersjach virtualenv. Przed przystąpieniem do modyfikacji starej wersji virtualenv należy zapisać zależności w pliku wymagań (pip freeze > requirements.txt
) i wykonać kopię zapasową w innym miejscu. Jeśli coś pójdzie nie tak, nadal możesz utworzyć nową virtualenv i zainstalować w niej stare zależności (pip install -r requirements.txt
).
Zaktualizowano: Zmieniłem odpowiedź 5 miesięcy po pierwotnej odpowiedzi. Poniższa metoda jest wygodniejsza i bardziej niezawodna.
Efekt uboczny: naprawia równieżSymbol not found: _SSLv2_method
wyjątek, gdy robisz toimport ssl
w środowisku wirtualnym po aktualizacji Pythona do wersji 2.7.8.
Wskazówka: Obecnie jest to tylko Python 2.7.x .
Jeśli używasz Homebrew Python w systemie OS X, najpierw deactivate
virtualenv, a następnie zaktualizuj Python:
brew update && brew upgrade python
Uruchom następujące polecenia ( <EXISTING_ENV_PATH>
jest ścieżką środowiska wirtualnego):
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
Na koniec utwórz ponownie środowisko wirtualne:
virtualenv <EXISTING_ENV_PATH>
W ten sposób stare pliki podstawowe Pythona i biblioteki standardowe (plus setuptools
i pip
) są usuwane, a zainstalowane biblioteki niestandardowe site-packages
są zachowywane i działają, gdy tylko znajdą się w czystym języku Python. Biblioteki binarne mogą wymagać ponownej instalacji, aby działały poprawnie.
Działa to dla mnie w 5 środowiskach wirtualnych z zainstalowanym Django.
BTW, jeśli ./manage.py compilemessages
później nie działa, spróbuj tego:
brew install gettext && brew link gettext --force