Как установить несколько версий Python на последнюю версию OS X и использовать их параллельно?
Я хочу запустить тесты с несколькими версиями Python на OS X 10.11, в том числе:
- Python 2.6 -?!
- Python 2.7 - по умолчанию - разрешено
- Python 3.4 -?!
- Python 3.5 - установлен через brew - работает хорошо
- Conda Python 3.5 -?!
Я хочу запустить тесты через tox
, чтобы ток мог найти их. К сожалению, кажется, что brew не хочет устанавливать 3.4, поскольку они добавили 3.5, и я, очевидно, не хочу удалять 3.5.
Ответы
Ответ 1
В этом сообщении в блоге предлагается использовать pyenv
с желаемым detox
. Для базовой установки с brew
требуется:
brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper
Затем установите нужные версии Python с pyenv install [version]
, , а не, установив Python с помощью brew
. Вы можете проверить доступные версии с помощью pyenv versions
.
Наконец, pip install detox
гарантирует, что у вас установлены tox
и detox
. Затем вы должны указать желаемые версии тестирования в tox.ini
.
Ответ 2
Я бы рекомендовал использовать диспетчер пакетов, например Anaconda
, https://www.continuum.io/downloads, что упрощает установку различных автономный virtual-envs
.
Например, для создания виртуальной среды с numpy
и Python 2.7
это команда:
conda create --name py2_env numpy python=2.7
И затем переключиться на эту среду:
source activate py2_env
Ответ 3
pyenv
это то, что вы хотите. Это работает очень, очень хорошо:
pyenv позволяет легко переключаться между несколькими версиями Python. Он простой, ненавязчивый и следует традиции UNIX, состоящей из универсальных инструментов, которые хорошо выполняют одну задачу. Этот проект был разветвлен от rbenv и ruby-build и модифицирован для Python.
https://github.com/pyenv/pyenv
Установите его через Homebrew:
$ brew update
$ brew install pyenv
Он обрабатывает загрузку, компиляцию и установку различных питонов для вас, например:
$ pyenv install 3.7.2
Он может показать вам, какие версии вы установили, а какие активны:
$ pyenv versions
system
3.6.7
* 3.7.2
Когда вы находитесь в новом каталоге проекта, просто скажите pyenv, какую версию Python использовать там:
$ pyenv local 3.6.7 # Because e.g. tensorflow isn't compat. with 3.7 :-(
Вы можете установить версию по умолчанию везде:
$ pyenv global 3.7.2