Довольно сложно управляться с несколькими версиями Python на одном ноутбуке. Хотя это довольно распространённая ситуация. Обычно у разработчиков несколько проектов, требующих разных версий Python. В целом есть несколько вариантов для решения этой задачи, но моим любимым остаётся pyenv в компании с плагином pyenv‑virtualenv. Раньше я использовал «голый» Homebrew, но это далеко не так гибко и удобно.

Установка

$ brew update
$ brew install pyenv
$ brew install pyenv-virtualenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

Базовый шаблон использования

Настоятельно рекомендую делать отдельные виртуальные окружения для каждого проекта. Иногда бывает необходимо делать даже несколько окружений для одного проекта. К примеру, если хочется использовать mypy для проекта на Python 2.

В первую очередь проверяем доступные версии:

$ pyenv install --list

Список впечатляет: помимо CPython есть PyPy и Stackless Python. Если последней версии в списке нет, надо обновить формулу для Homebrew:

$ brew upgrade pyenv

Обычно новая версия появляется в списке через день‑два.

Подготовка виртуального окружения для проекта делается в 3 шага:

  1. Установить подходящую версию Python, если её ещё нет.
  2. Сделать виртуальное окружение.
  3. Активировать окружение для проекта.
$ pyenv install 3.6.0
$ pyenv virtualenv 3.6.0 my-project-venv
$ cd /to/my/project/folder
$ pyenv local my-project-venv

Вот и всё.

В случае использования PyCharm надо создать новую Python SDK с путём, равным ~/.pyenv/versions/my-project-venv.