Я установил virtualenv на свой новый MacBook Pro (первый пользователь Mac), прежде чем я сделал что-нибудь еще (возможно, плохая идея). Когда я создаю env, он содержит /lib/Python2.6
внутри него. После этого я установил Python2.7, но он все еще включает в себя Python2.6
папку в lib
, поэтому я предполагаю, что что-то испортилось.
Примечание. Если я перехожу на терминал и набираю python
, я правильно получаю Python2.7.
Я попытался переустановить virtualenv с помощью:
pip install virtualenv --upgrade
а также
easy_install virtualenv
Оба имели тот же результат. Они отлично работали без каких-либо проблем, но я все еще не получаю папку Python2.7
в lib
в новых envs (примечание: я закрыл и снова открыл терминал каждый раз, когда я обновился, чтобы быть в безопасности)...
На боковой ноте я также попытался:
brew install virtualenv
но получил следующую ошибку:
Error: No available formula for virtualenv
virtualenv foo_env --python=Python2.7
Когда вы передаете аргумент python
, он устанавливает для bin
и lib
для этой версии (при условии, что у вас установлена эта версия).
Это не отвечает на ваш вопрос, но я нашел самый простой способ получить несколько версий Python и работать в OS X, чтобы использовать macports. Для крупных инструментов, таких как PIP и VirtualEnv, macports имеет самые последние версии, и он управляет всем достаточно хорошо.
Затем вы можете установить PIP для каждой установленной версии, а также virtualenv. Для более общих случаев, когда вам не нужен virtualenv, но вам просто нужно протестировать разные варианты, вы также можете использовать python_select из macports.
После того, как у вас есть macports, вы можете установить их с помощью
sudo port install python26 py26-pip py26-virtualenv python_select
EDIT: Кажется, я забираю этот ответ за пропаганду использования MacPorts над Homebrew. Причиной этого ответа было то, что мне было сказано конкретно не зависеть от версии OS X python. Вот почему у меня есть резервная установка Macports Python 2.6, а затем все инструменты для ее дополнения. Если вы считаете, что этот ответ плохой, пожалуйста, оставьте конкретный комментарий о том, почему и как его улучшить.