Это обновлённый материал о настройке Python3 и virtualenv по мотивам двух предыдущих: "Настройка Python и Django в Mac" и "Virtualenv на Mac OS X". Всё описанное тут актуально для OS X Sierra. Если вам не понятен материал, задавайте вопросы в комментариях или же обратитесь к ссылкам выше.

Подготовка. Установка Homebrew и Python3

Первое, что нужно сделать - установить Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Итак, далее... Устанавливаем python, ставим сразу 3ю версию.

brew install python3 --with-brewed-openssl

Проверить версию питона можно командой

# Для коробочного питона
python -V # Узнать версию
where python # Место расположения
# Для только что установленного питона 
python3 -V # Узнать версию
where python3 # Место расположения

Установка и настройка virtualenv

Далее устанавливаем два расширения для виртуального окружения. Это нужно для того, чтобы для каждого проекта подтягивались только зависимости проекта.

pip3 install virtualenv virtualenvwrapper

Вставим несколько строк в ~/.bashrc:

# Добавляем переменную - то где установлен Python
if [ -d /usr/local/lib/python3.5/site-packages ]; then
export PYTHONPATH=/usr/local/lib/python3.5/site-packages:$PYTHONPATH
fi

# Определяем местоположение virtualenvwrapper
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
export VENVWRAP=/usr/local/bin/virtualenvwrapper.sh
fi

if [ ! -z $VENVWRAP ]; then
 # virtualenvwrapper
 # убедимся что папка существует
 [ -d $HOME/sites/env ] || mkdir -p $HOME/sites/env
 export WORKON_HOME=$HOME/sites/env
 source $VENVWRAP

 # virtualenv
 export VIRTUALENV_USE_DISTRIBUTE=true

 # pip
 export PIP_VIRTUALENV_BASE=$WORKON_HOME
 export PIP_REQUIRE_VIRTUALENV=true # pip должен выполняться только если активирован virtualenv
 export PIP_RESPECT_VIRTUALENV=true
 export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache # Кешируем пакеты чтобы избежать повторной загрузки
fi

Создаём файл ~/sites/env/postactivate и добавляем в него следующее:

proj_name=${VIRTUAL_ENV##*/}

# Добавляем для активного проекта PYTHONPATH
if [ -d ~/sites/env/$proj_name/lib/python3.5/site-packages ]; then
add2virtualenv ~/sites/env/$proj_name/lib/python3.5/site-packages
fi

# делаем "cd" в виртуальное окружение
if [ -d ~/sites/env/$proj_name/project ]; then
cd ~/sites/env/$proj_name/project
else
cd ~/sites/env/$proj_name
fi

Использование virtualenv

После этого остаётся перезагрузить bash-окружение

source ~/.bashrc

В результате мы можем следующее:

  • Создать виртуальную среду с именем "test" в ~/sites/env/

    mkvirtualenv test

  • Активировать созданную среду

    workon test

  • Перейти в каталог активной среды

    cdvirtualenv

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