再度更新:
次のメソッドは、virtualenvの新しいバージョンでは機能しない可能性があります。古いvirtualenvに変更を加える前に、依存関係を要件ファイル(pip freeze > requirements.txt
)に保存し、別の場所にバックアップを作成する必要があります。何か問題が発生した場合でも、新しいvirtualenvを作成して古い依存関係をインストールできます(pip install -r requirements.txt
)。
更新:最初に回答してから5か月後に回答を変更しました。次の方法は、より便利で堅牢です。
副作用: Pythonをv2.7.8にアップグレードした後に仮想環境でSymbol not found: _SSLv2_method
実行import ssl
した場合の例外も修正されます。
注意:現在、これはPython 2.7.x専用です。
deactivate
OSXでHomebrew Pythonを使用している場合は、最初にすべての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