Cập nhật lại:
Phương pháp sau có thể không hoạt động trong các phiên bản mới hơn của virtualenv. Trước khi bạn cố gắng thực hiện sửa đổi cho virtualenv cũ, bạn nên lưu các phụ thuộc trong tệp yêu cầu (pip freeze > requirements.txt) và tạo bản sao lưu của nó ở một nơi khác. Nếu bất cứ điều gì sai, bạn vẫn có thể tạo một virtualenv mới và cài đặt các phụ thuộc cũ trong nó (pip install -r requirements.txt).
Cập nhật: Tôi đã thay đổi câu trả lời 5 tháng sau khi tôi trả lời ban đầu. Phương pháp sau đây thuận tiện và mạnh mẽ hơn.
Tác dụng phụ: nó cũng sửa lỗiSymbol not found: _SSLv2_methodngoại lệ khi bạn thực hiệnimport ssltrong môi trường ảo sau khi nâng cấp Python lên v2.7.8.
Thông báo: Hiện nay, đây là chỉ Python 2.7.x .
Nếu bạn đang sử dụng Homebrew Python trên OS X, trước deactivatehết hãy sử dụng virtualenv, sau đó nâng cấp Python:
brew update && brew upgrade python
Chạy các lệnh sau ( <EXISTING_ENV_PATH>là đường dẫn của môi trường ảo của bạn):
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
Cuối cùng, tạo lại môi trường ảo của bạn:
virtualenv <EXISTING_ENV_PATH>
Bằng cách làm như vậy, các tệp lõi Python cũ và các thư viện chuẩn (cộng setuptoolsvà pip) sẽ bị xóa, trong khi các thư viện tùy chỉnh được cài đặt site-packagesđược bảo tồn và hoạt động, ngay khi chúng ở trong Python thuần túy. Thư viện nhị phân có thể hoặc không cần phải được cài đặt lại để hoạt động đúng.
Điều này làm việc cho tôi trên 5 môi trường ảo với Django được cài đặt.
BTW, nếu ./manage.py compilemessageskhông hoạt động sau đó, hãy thử điều này:
brew install gettext && brew link gettext --force