Aggiornato di nuovo:
il seguente metodo potrebbe non funzionare nelle versioni più recenti di virtualenv. Prima di provare a apportare modifiche alla vecchia virtualenv, è necessario salvare le dipendenze in un file di requisiti (pip freeze > requirements.txt
) ed effettuare un backup da qualche altra parte. Se qualcosa va storto, puoi comunque creare un nuovo virtualenv e installare le vecchie dipendenze (pip install -r requirements.txt
).
Aggiornato: ho modificato la risposta 5 mesi dopo la risposta iniziale. Il seguente metodo è più conveniente e robusto.
Effetto collaterale: corregge anche l'Symbol not found: _SSLv2_method
eccezione quando si faimport ssl
in un ambiente virtuale dopo aver aggiornato Python alla v2.7.8.
Avviso: Attualmente, questo è per Python solo 2.7.x .
Se stai usando Homebrew Python su OS X, prima deactivate
tutto virtualenv, quindi aggiorna Python:
brew update && brew upgrade python
Esegui i seguenti comandi ( <EXISTING_ENV_PATH>
è il percorso del tuo ambiente virtuale):
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
Infine, ricrea il tuo ambiente virtuale:
virtualenv <EXISTING_ENV_PATH>
In questo modo, i vecchi file core di Python e le librerie standard (più setuptools
e pip
) vengono rimossi, mentre le librerie personalizzate installate site-packages
vengono mantenute e funzionanti, non appena sono in Python puro. Potrebbe essere necessario reinstallare le librerie binarie per funzionare correttamente.
Questo ha funzionato per me su 5 ambienti virtuali con Django installato.
A proposito, se ./manage.py compilemessages
dopo non funziona, prova questo:
brew install gettext && brew link gettext --force