Установка 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 — папка проекта виртуальной среды, здесь хранятся все зависимые компоненты, а также версия пайтон
В случае успеха терминал выдаст:
Проверяем какие версии установлены для этого окружения:
pip list
python -V
Установка Jupyter
Теперь устанавливаем Jupyter с версией 3.0.16 :
pip install jupyterlab==3.0.16
Запускаем рабочую тетрадь Jupyter в браузере:
jupyter lab
Если все настроено верно, то в командной строке появится адрес для браузера, который автоматически откроется:
Установим дополнительные библиотеки для работы в Jupyter:
Если какой-то пакет не установится, то его нужно установить отдельно командой:
!pip install catboost==1.0.5
Базовые команды
- Показать директорию проектов echo $WORKON_HOME
- Запускаем проект workon practicum_env
- Запускаем тетрадь jupyter lab
- Останавливаем, если закончили работу deactivate
Еще по теме
Разбор ошибок в ходе установки Virtualenv & Virtualenvwrapper
Установка Python2 на macOS
Управление виртуальным окружением
Установка и настройка виртуальной среды в macOS
Начальная работа в Homebrew
Самый большой мануал по настройка Python
А если сделать:
```
mkdir project
python3 -m venv project
cd project
source bin/activate
```
Результат тот же будет?
Просто как-то много разных теледвижений
p.s. если что, я сварщик ненастоящий