Actualizado nuevamente:
el siguiente método podría no funcionar en versiones más recientes de virtualenv. Antes de intentar hacer modificaciones al antiguo virtualenv, debe guardar las dependencias en un archivo de requisitos (pip freeze > requirements.txt
) y hacer una copia de seguridad de él en otro lugar. Si algo sale mal, aún puede crear un nuevo virtualenv e instalar las antiguas dependencias en él (pip install -r requirements.txt
).
Actualizado: cambié la respuesta 5 meses después de haber respondido originalmente. El siguiente método es más conveniente y robusto.
Efecto secundario: también corrige laSymbol not found: _SSLv2_method
excepción cuando lo haceimport ssl
en un entorno virtual después de actualizar Python a v2.7.8.
Aviso: En la actualidad, esto es sólo el 2.7.x Python .
Si está utilizando Homebrew Python en OS X, primero deactivate
todo virtualenv, luego actualice Python:
brew update && brew upgrade python
Ejecute los siguientes comandos ( <EXISTING_ENV_PATH>
es la ruta de su entorno virtual):
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
Finalmente, vuelva a crear su entorno virtual:
virtualenv <EXISTING_ENV_PATH>
Al hacerlo, se eliminan los archivos centrales antiguos de Python y las bibliotecas estándar (más setuptools
y pip
), mientras que las bibliotecas personalizadas instaladas site-packages
se conservan y funcionan, tan pronto como estén en Python puro. Las bibliotecas binarias pueden o no necesitar ser reinstaladas para funcionar correctamente.
Esto funcionó para mí en 5 entornos virtuales con Django instalado.
Por cierto, si ./manage.py compilemessages
no funciona después, intente esto:
brew install gettext && brew link gettext --force