Установка Python и виртуального окружения в macOS

Для выполнения практических задач на втором спринте курса Аналитик данных обязательно требуется ставить софт локально, чтобы работать с данными непосредственно в самих программах. Тренажер — это всего лишь верхушка айсберга, как оказалось.

Провел бессонные ночи в поиске идеального лаконичного решения. Основное требование — все в одном месте, чтобы, в случае удаления, в системе не было никаких хвостов и при этом можно было бы легко заливать на гитхаб.

В курсе есть отдельные уроки по установке Пайтона, но там настолько поверхностная статья, что скриншоты по настройке в macOS идут из Windows. Хотя приведенный способ рабочий. Его основной минус: хрен пойми, как это потом все чистить все случае чего.

Homebrew — открытый менеджер пакетов для macOS и Linux, работающий через консоль.

По сути, я пришел к выводу, что идеальный вариант — это использование Homebrew. Что меня подкупило — почти весь свой софт, помимо решения задач на Яндекс.Практикуме, я могу скачать одной командой:

brew install raycast arc spotify telegram zoom coconutbattery rescuetime wireguard-tools itsycal dockey choosy figma atext little-snitch cleanshot discord karabiner-elements popclip appcleaner

Поэтому решил идти по пути установки всех нужных пакетов через Homebrew. Помимо простоты этого менеджера пакетов, еще можно отнести к плюсам множество мануалов и большое комьюнити. Поэтому большинство технических проблем всегда можно решить.

Установка Homebrew в macOS 13.6

Ставим инструменты командной строки Xcode:

xcode-select --install

Загрузим Homebrew через инструмент cUrl

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Параметры из документации:

-f – не выводить сообщения об ошибках;

-s – отключает индикатор выполнения и с параметром -S (show-error), выводит сообщения об ошибках, если что-то идёт не так.

-L (location) – при переадресации сервера на другую страницу, команда автоматически выполнит повторный запрос, используя новое расположение.

-o – определяет имя локального файла, в который будет сохранен загружаемые данные.

После установки в некоторых случаях Brew может предложить выполнить две команды:

(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/username/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Проверяем все ли корректно установлено:

brew doctor
Your system is ready to brew.

Обновим Brew:

brew update
brew upgrade

Дисклеймер. Эта версия установки не заработала на макбук м1 с ОС Sonoma. Поэтому применяйте на свой страхи риск. Сейчас я использую Mamba, но он не поддерживает версию 3.9.5. питона.

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

Для управлениями версий Пайтона я буду использовать pyenv. В рекомендациях Яндекс.Практикума указано, что нужно использовать версию 3.9.5. Так как у Brew невозможно установить менее крупные релизы, поэтому pyenv идеально подходит.

Устанавливаем pyenv:

brew install pyenv

Теперь сконфигурируем PATH двумя командами:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

Для правильной работы pyenv в macOS сделаем настройку:

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc

Перезапустим shell:

source ~/.zshrc

Чтобы pyenv работал корректно, установим зависимые компоненты:

brew install openssl readline sqlite3 xz zlib

Чтобы компиляторы могли найти zlib, выполним три команды:

export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig"

Устанавливаем нужную версию пайтона:

pyenv install 3.5.9

Список доступных версий можно увидеть по команде:

pyenv install --list

Далее я хочу сделать версию 3.9.5 глобальной:

pyenv global 3.9.5

Проверяем какие версии установлены:

pyenv versions
  system
* 3.9.5 (set by /Users/username/.pyenv/version)

Проверим версию пайтона. Если все корректно установилось, то в строке будет путь:

which python3
/Users/username/.pyenv/shims/python3

Если выдается /usr/local/bin/python3, то используем команду

pyenv rehash

Если все настроено правильно, то исходники питона должны находиться в shims.

Виртуальная среда

Для того, чтобы будущий проект в Практикуме изолировать от возможных других и загрузить к нему отдельные библиотеки, будем использовать virtualwrapper.

Установим нужный пакет:

python3 -m pip install virtualenvwrapper

Настроим конфигурацию virtualenvwrapper в редакторе nano ~/.zshrc:


# Доступ pyenv к командной строке и путь до репозитория
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

# Настройки домашней папки virtualenvs
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Documents/Python/develop
export VIRTUALENVWRAPPER_PYTHON=/Users/username/.pyenv/shims/python3
source /Users/username/.pyenv/versions/3.9.5/bin/virtualenvwrapper.sh

# Конфигурация оболочки pyenv shims
if command -v pyenv 1>/dev/null 2>&1; then
 eval "$(pyenv init -)"
fi

Так как в последних версиях macOS выпилили Python2 и поэтому указанные пути python3 и virtualenvwrapper.sh подбираются следующим образом. Для python3 все просто:

which python3
/Users/username/.pyenv/shims/python3

Проверим путь до virtualenvwrapper.sh:

which virtualenvwrapper.sh
/Users/username/.pyenv/shims/virtualenvwrapper.sh

Этот вариант запускаться не будет. Нужен абсолютный путь до конкретной версии. Сначала найдем в системе все файлы:

find / -name virtualenvwrapper.sh
/Users/misha/.pyenv/versions/3.9.5/bin/virtualenvwrapper.sh
/Users/misha/.pyenv/shims/virtualenvwrapper.sh

Поэтому вставляем путь до файла на второй строке.

Теперь создадим папку practicum в домашней директории:

mkdir practicum

И создадим проект в виртуальной среде:

mkvirtualenv -a $HOME/practicum -r practicum_env

practicum — папка для хранения файлов проекта

practicum_env — папка проекта виртуальной среды, здесь хранятся все зависимые компоненты, а также версия пайтон

В случае успеха терминал выдаст:

Команда mkvirtualenv для создания виртуальной среды

Проверяем какие версии установлены для этого окружения:

pip list
python -V

Установка Jupyter

Теперь устанавливаем Jupyter с версией 3.0.16 :

pip install jupyterlab==3.0.16

Запускаем рабочую тетрадь Jupyter в браузере:

jupyter lab

Если все настроено верно, то в командной строке появится адрес для браузера, который автоматически откроется:

Успешный вывод на запуск jupyter lab

Установим дополнительные библиотеки для работы в Jupyter:

Установка библиотек локально в Jupyter

Если какой-то пакет не установится, то его нужно установить отдельно командой:

!pip install catboost==1.0.5

Базовые команды

  1. Показать директорию проектов echo $WORKON_HOME
  2. Запускаем проект workon practicum_env
  3. Запускаем тетрадь jupyter lab
  4. Останавливаем, если закончили работу deactivate

Еще по теме
Разбор ошибок в ходе установки Virtualenv & Virtualenvwrapper

Установка Python2 на macOS

Управление виртуальным окружением

Установка и настройка виртуальной среды в macOS

Начальная работа в Homebrew

Самый большой мануал по настройка Python

Send
Share
Pin
1 comment
Айфоновод Маковедов 1 y

А если сделать:
```
mkdir project
python3 -m venv project
cd project
source bin/activate
```

Результат тот же будет?
Просто как-то много разных теледвижений

p.s. если что, я сварщик ненастоящий