Почему стандартный Python на macOS не подходит для разработки
При покупке Mac вы получаете предустановленную версию интерпретатора Python. Однако эта версия:
- Устарела. Apple редко обновляет системный Python, и он почти всегда отстаёт на несколько мажорных версий от актуального релиза Python Software Foundation.
- Закрыт для модификации. Системный Python находится в защищённой системной папке (
/usr/bin/). Вы не можете его обновить через менеджер пакетов или напрямую, так как это потребует отключения SIP (System Integrity Protection) и нарушит работу macOS. - Не для разработки. Он предназначен исключительно для внутренних нужд операционной системы. Установка сторонних пакетов через
pipв системный Python невозможна или приведёт к конфликтам.
Правильный подход: Установить отдельную, актуальную версию Python 3 параллельно с системной, используя менеджер пакетов. Это безопасно и даёт вам полный контроль.
Способ 1: Установка через Homebrew (рекомендуемый для большинства)
Homebrew — это стандартный пакетный менеджер для macOS. Он устанавливает пакеты в свою собственную директорию (/opt/homebrew/ на Apple Silicon или /usr/local/ на Intel), не затрагивая систему.
Шаг 1: Установка Homebrew (если не установлен)
Откройте Terminal (в Applications -> Utilities или через Spotlight) и выполните команду:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Следуйте инструкциям на экране. После установки Homebrew может предложить добавить себя в ваш PATH. Сделайте это, следуя инструкциям в конце установки (обычно это добавление строки в ~/.zprofile).
💡 Совет: Проверьте установку, выполнив
brew doctor. Он сообщит, если есть проблемы с конфигурацией.
Шаг 2: Установка Python
Теперь установите Python. Homebrew установит не только сам интерпретатор, но и менеджер пакетов pip, утилиты python@3.x и создаст symlink python3 в своей bin-директории.
brew update
brew install python
Эта команда установит последнюю стабильную версию Python 3 (например, 3.12.x).
Шаг 3: Настройка пути (PATH)
Это самый важный шаг, без которого система будет продолжать использовать старый Python.
- Определите, какой shell вы используете. Выполните
echo $SHELL. Если путь заканчивается наzsh(по умолчанию в macOS Catalina и новее) — редактируйте~/.zshrc. Если наbash—~/.bash_profileили~/.bashrc. - Откройте соответствующий файл в текстовом редакторе (например,
nano ~/.zshrc). - В самое начало файла добавьте строку:
export PATH="/opt/homebrew/bin:$PATH"- Для Mac с процессором Intel путь может быть
/usr/local/bin:$PATH.
- Для Mac с процессором Intel путь может быть
- Сохраните файл (в
nanoэтоCtrl+X, затемY, затемEnter). - Примените изменения к текущей сессии Terminal:
source ~/.zshrc # или source ~/.bash_profile
Шаг 4: Проверка установки
Выполните команды:
python3 --version
# Ожидаемый вывод: Python 3.12.x
which python3
# Ожидаемый вывод: /opt/homebrew/bin/python3 (или /usr/local/bin/python3)
# Проверим, какая версия python по умолчанию (если вы создали symlink, см. ниже)
python --version 2>/dev/null || echo "Команда 'python' не настроена"
Если which python3 показывает путь внутри /opt/homebrew/ или /usr/local/, а не /usr/bin/ — вы на правильном пути.
(Опционально) Создание команды python
По историческим причинам многие скрипты и инструкции используют команду python, а не python3. Homebrew не создаёт symlink python по умолчанию, чтобы не конфликтовать с системным Python.
Если вы хотите, чтобы команда python вызывала ваш новый Python, создайте symlink:
brew link --overwrite python
⚠️ Важно: Эта команда создаст символьную ссылку
pythonв/opt/homebrew/bin/. Поскольку этот путь вы добавили в началоPATH, ваша командаpythonтеперь будет указывать на Homebrew-версию. Убедитесь, что это именно то, что вам нужно.
Способ 2: Управление версиями через pyenv (для продвинутых и многопроектных сред)
Если вам нужно часто переключаться между разными версиями Python (например, Python 3.10 для одного проекта, 3.12 для другого), используйте pyenv.
Шаг 1: Установка pyenv через Homebrew
brew install pyenv
Шаг 2: Настройка pyenv в shell
pyenv работает, подменяя команду python в вашем текущем shell. Для этого нужно добавить его инициализацию в конфигурационный файл shell (~/.zshrc или ~/.bash_profile).
Добавьте в конец файла следующие строки:
# pyenv configuration
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)" # если планируете использовать виртуальные окружения
fi
Выполните source ~/.zshrc.
Шаг 3: Установка конкретной версии Python
# Посмотреть доступные для установки версии
pyenv install --list | grep -E "^\s*3\.(10|11|12)"
# Установить нужную версию (например, 3.12.3)
pyenv install 3.12.3
# Установить другую (например, 3.10.13)
pyenv install 3.10.13
Шаг 4: Установка глобальной или локальной версии
- Глобально (по умолчанию для всех проектов):
pyenv global 3.12.3 - Локально (только для текущей директории проекта):
Это создаст в папке проекта файлcd /путь/к/вашему/проекту pyenv local 3.10.13.python-version, и при переходе в неёpyenvавтоматически переключит версию Python.
Шаг 5: Проверка
python --version
# Должна отобразиться версия, установленная через pyenv (например, 3.12.3)
pyenv versions
# Покажет все установленные версии и текущую активную (*)
Настройка виртуальных окружений (обязательный следующий шаг)
Установив системный Python, вы почти сразу столкнётесь с задачей изоляции зависимостей между проектами. Никогда не устанавливайте пакеты глобально (pip install package) в ваш основной Python!
Используйте виртуальные окружения:
- Встроенный
venv(рекомендуется):# Создать окружение в папке .venv python3 -m venv .venv # Активировать (в zsh) source .venv/bin/activate # Теперь pip install будет устанавливать пакеты только в это окружение pip install requests # Деактивировать deactivate - Управление через
pyenv-virtualenv(если установилиpyenv):# Создать виртуальное окружение на основе конкретной версии Python pyenv virtualenv 3.12.3 myproject-env # Активировать для текущей папки pyenv local myproject-env
Проверка и дальнейшие шаги
- Проверьте путь. Команда
which -a python3должна показывать путь в/opt/homebrew/bin/или~/.pyenv/shims/выше, чем/usr/bin/. - Обновите pip. Даже новая установка Python может иметь устаревший
pip. Выполните:python3 -m pip install --upgrade pip setuptools wheel - Установите менеджер зависимостей. Для большинства проектов вам понадобится
poetryилиpipenv. Установите их глобально в ваш новый Python:python3 -m pip install poetry - Удалите старые версии (опционально). Если вы устанавливали Python ранее через другие методы (например, с официального сайта python.org), их можно удалить, чтобы избежать путаницы. Обычно они находятся в
/Library/Frameworks/Python.framework/.
Вы успешно обновили Python на macOS! Теперь у вас есть современный, управляемый интерпретатор, готовый к разработке на Django, FastAPI, анализу данных или автоматизации.