Mis à jour à nouveau:
la méthode suivante peut ne pas fonctionner dans les versions plus récentes de virtualenv. Avant d'essayer d'apporter des modifications à l'ancien virtualenv, vous devez enregistrer les dépendances dans un fichier d'exigences (pip freeze > requirements.txt
) et en faire une sauvegarde ailleurs. En cas de problème, vous pouvez toujours créer un nouveau virtualenv et y installer les anciennes dépendances (pip install -r requirements.txt
).
Mise à jour: j'ai changé la réponse 5 mois après avoir répondu à l'origine. La méthode suivante est plus pratique et robuste.
Effet secondaire: il corrige également l'Symbol not found: _SSLv2_method
exception lorsque vous le faitesimport ssl
dans un environnement virtuel après la mise à niveau de Python vers la v2.7.8.
Avis: À l' heure actuelle, ceci est pour Python 2.7.x seulement .
Si vous utilisez Homebrew Python sur OS X, tout d' deactivate
abord virtualenv, puis mettez à niveau Python:
brew update && brew upgrade python
Exécutez les commandes suivantes ( <EXISTING_ENV_PATH>
est le chemin de votre environnement virtuel):
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
Enfin, recréez votre environnement virtuel:
virtualenv <EXISTING_ENV_PATH>
Ce faisant, les anciens fichiers de base Python et les bibliothèques standard (plus setuptools
et pip
) sont supprimés, tandis que les bibliothèques personnalisées installées danssite-packages
sont conservées et fonctionnent, dès qu'elles sont en Python pur. Les bibliothèques binaires peuvent ou non avoir besoin d'être réinstallées pour fonctionner correctement.
Cela a fonctionné pour moi sur 5 environnements virtuels avec Django installé.
BTW, si cela ./manage.py compilemessages
ne fonctionne pas par la suite, essayez ceci:
brew install gettext && brew link gettext --force