再度更新:
次の方法は、virtualenvの新しいバージョンでは機能しない可能性があります。古いvirtualenvに変更を加える前に、依存関係を要件ファイル(pip freeze > requirements.txt
)に保存し、別の場所にバックアップする必要があります。問題が発生した場合でも、新しいvirtualenvを作成して、古い依存関係をインストールできます(pip install -r requirements.txt
)。
更新:最初に回答してから5か月後に回答を変更しました。次の方法は、より便利で堅牢です。
副作用: Pythonをv2.7.8にアップグレードした後、仮想環境でSymbol not found: _SSLv2_method
行う場合の例外も修正import ssl
注意:現在、これはPython2.7.x専用です。
OSXでHomebrewPythonを使用している場合は、最初にdeactivate
すべてvirtualenvを使用してから、Pythonをアップグレードします。
brew update && brew upgrade python
次のコマンドを実行します(<EXISTING_ENV_PATH>
仮想環境のパスです)。
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
最後に、仮想環境を再作成します。
virtualenv <EXISTING_ENV_PATH>
そうすることで、古いPythonコアファイルと標準ライブラリ(プラスsetuptools
とpip
)が削除されますが、にインストールされているカスタムライブラリsite-packages
は、純粋なPythonになるとすぐに保持され、機能します。バイナリライブラリは、正しく機能するために再インストールする必要がある場合とない場合があります。
これは、Djangoがインストールされている5つの仮想環境で機能しました。
ところで、./manage.py compilemessages
後で動作しない場合は、これを試してください:
brew install gettext && brew link gettext --force