Erneut aktualisiert:
Die folgende Methode funktioniert möglicherweise nicht in neueren Versionen von virtualenv. Bevor Sie versuchen, Änderungen an der alten virtuellen Umgebung vorzunehmen, sollten Sie die Abhängigkeiten in einer Anforderungsdatei (pip freeze > requirements.txt
)speichernund an einer anderen Stelle sichern. Wenn etwas schief geht, können Sie trotzdem eine neue virtuelle Umgebung erstellen und die alten Abhängigkeiten darin installieren (pip install -r requirements.txt
).
Aktualisiert: Ich habe die Antwort 5 Monate nach meiner ursprünglichen Antwort geändert. Die folgende Methode ist bequemer und robuster.
Nebeneffekt: Es behebt auch dieSymbol not found: _SSLv2_method
Ausnahme, wenn Sie diesimport ssl
in einer virtuellen Umgebung nach dem Upgrade von Python auf Version 2.7.8 tun.
Hinweis: Derzeit ist dies für Python 2.7.x nur .
Wenn Sie Homebrew Python unter OS X verwenden, zuerst deactivate
alle virtuellen Geräte und dann Python aktualisieren:
brew update && brew upgrade python
Führen Sie die folgenden Befehle aus ( <EXISTING_ENV_PATH>
ist der Pfad Ihrer virtuellen Umgebung):
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
Erstellen Sie abschließend Ihre virtuelle Umgebung neu:
virtualenv <EXISTING_ENV_PATH>
Auf diese Weise werden alte Python-Kerndateien und Standardbibliotheken (plus setuptools
und pip
) entfernt, während die in installierten benutzerdefinierten Bibliotheken site-packages
erhalten bleiben und funktionieren, sobald sie in reinem Python vorliegen. Binäre Bibliotheken müssen möglicherweise neu installiert werden, damit sie ordnungsgemäß funktionieren.
Dies funktionierte für mich in 5 virtuellen Umgebungen mit installiertem Django.
Übrigens, wenn ./manage.py compilemessages
es danach nicht funktioniert, versuchen Sie Folgendes:
brew install gettext && brew link gettext --force