Использование Python в macOS
В этом документе приводится обзор особенностей macOS, которые следует знать, чтобы начать работу с Python на компьютерах Mac. Python на Mac под управлением macOS очень похож на Python на других платформах, производных от Unix, но есть некоторые различия в установке и некоторые особенности.
Существует несколько способов получить и установить Python для macOS. Готовые версии последних выпусков Python доступны у ряда дистрибьюторов. В значительной части этого документа описывается использование версий Python, предоставляемых командой выпуска CPython для загрузки с сайта python.org. Другие варианты см. в разделе Альтернативные дистрибутивы.
5.1. Использование Python для macOS с python.org
5.1.1. Этапы установки
Для текущих версий Python (кроме версий со статусом security) команда выпуска готовит установочный пакет Python для macOS для каждого нового выпуска. Список доступных установщиков можно найти здесь. По возможности рекомендуется использовать последнюю поддерживаемую версию Python. Текущие установщики предоставляют сборку Python в формате универсального двоичного файла universal2, которая работает нативно на всех компьютерах Mac (Apple Silicon и Intel), поддерживаемых широким диапазоном версий macOS, обычно начиная как минимум с macOS 10.13 High Sierra.
Загруженный файл представляет собой стандартный установочный пакет macOS (.pkg). Информация о целостности файла (контрольная сумма, размер, подпись sigstore и т. д.) для каждого файла указана на странице загрузки выпуска. Установочные пакеты и их содержимое подписаны и нотариально заверены с помощью сертификатов Apple Developer ID Python Software Foundation, чтобы соответствовать требованиям macOS Gatekeeper.
Для установки с настройками по умолчанию дважды щёлкните загруженный установочный пакет. Должно открыться стандартное приложение «Установка macOS» и появиться первое из нескольких окон установщика.
Нажатие кнопки Продолжить открывает файл Read Me для этого установщика. Помимо другой важной информации, в файле Read Me указано, какая версия Python будет установлена и какие версии macOS поддерживаются. Возможно, потребуется прокрутить документ, чтобы прочитать его целиком. По умолчанию этот файл Read Me также будет установлен в /Applications/Python 3.13/ и будет доступен для чтения в любое время.
Нажатие кнопки Продолжить открывает лицензию Python и другого входящего в комплект программного обеспечения. Прежде чем перейти к следующему этапу, необходимо Принять условия лицензии. Этот файл лицензии также будет установлен и останется доступным для чтения.
После принятия условий лицензии появится экран Тип установки. Для большинства случаев подходит стандартный набор операций установки.
Нажав кнопку Настроить, можно исключить или выбрать отдельные компоненты установочного пакета. Щёлкните имя каждого пакета, чтобы увидеть описание устанавливаемых им компонентов. Чтобы также установить поддержку дополнительной экспериментальной функции без GIL, см. раздел Установка сборок без GIL.
В любом случае нажатие кнопки Установить начнёт процесс установки, запросив разрешение на установку нового программного обеспечения. Необходима учётная запись macOS с привилегиями Administrator, поскольку установленный Python будет доступен всем пользователям Mac.
По завершении установки появится окно Сводка.
Дважды щёлкните значок или файл Install Certificates.command в окне /Applications/Python 3.13/, чтобы завершить установку.
Откроется временное окно оболочки Terminal, в котором новая версия Python загрузит и установит корневые сертификаты SSL для своего использования.
Если в окне терминала появится Successfully installed certifi и update complete, установка завершена. Закройте это окно терминала и окно установщика.
Установка с настройками по умолчанию включает:
- Папку
Python 3.13в папкеApplications. В ней находятся IDLE — среда разработки, являющаяся стандартной частью официальных дистрибутивов Python, — и Python Launcher, который обрабатывает двойные щелчки по скриптам Python в приложении macOS Finder. - Фреймворк
/Library/Frameworks/Python.framework, содержащий исполняемый файл Python и библиотеки. Установщик добавляет этот путь в путь поиска оболочки. Чтобы удалить Python, можно удалить эти три компонента. Символические ссылки на исполняемый файл Python размещаются в/usr/local/bin/.
Примечание
В последних версиях macOS есть команда python3 в /usr/bin/python3, которая указывает на обычно более старую и неполную версию Python, предоставляемую Apple для использования инструментами разработки Apple — Xcode или Command Line Tools for Xcode. Не следует изменять или пытаться удалять эту установку: она контролируется Apple и используется программным обеспечением Apple или сторонних разработчиков. Если вы установите более новую версию Python из python.org, на компьютере будут две разные, но работоспособные установки Python, которые могут сосуществовать. Параметры установщика по умолчанию должны обеспечить использование его команды python3 вместо системной команды python3.
5.1.2. Как запустить скрипт Python
Вызвать интерпретатор Python можно двумя способами. Если вы умеете пользоваться оболочкой Unix в окне терминала, можно вызвать python3.13 или python3, при необходимости добавив один или несколько параметров командной строки (описанных в разделе Командная строка и окружение). В руководстве по Python также есть полезный раздел об интерактивном использовании Python из оболочки.
Также можно вызвать интерпретатор через интегрированную среду разработки. IDLE — редактор и оболочка Python — это простая среда редактирования и интерпретации, включённая в стандартный дистрибутив Python. В IDLE есть меню «Справка», позволяющее открыть документацию Python. Если вы только начинаете знакомиться с Python, ознакомьтесь с введением в руководство в этом документе.
Доступно множество других редакторов и IDE; дополнительную информацию см. в разделе Редакторы и IDE.
Чтобы запустить файл скрипта Python из окна терминала, вызовите интерпретатор, указав имя файла скрипта:
python3.13 myscript.py
Чтобы запустить скрипт из Finder, можно:
- Перетащить его на Python Launcher.
- Выбрать Python Launcher в качестве приложения по умолчанию для открытия скрипта (или любого скрипта
.py) через окно информации Finder и дважды щёлкнуть по нему. В Python Launcher есть различные настройки, управляющие запуском скрипта. Перетаскивание с нажатой клавишей Option позволяет изменить настройки для одного запуска, а менюPreferences— изменить их глобально.
Обратите внимание: запуск скрипта непосредственно из Finder в macOS может привести к результатам, отличающимся от запуска из окна терминала, поскольку скрипт не будет выполняться в обычном окружении оболочки, включая переменные окружения, заданные в профилях оболочки. И, как и при запуске любого другого скрипта или программы, убедитесь, что знаете, что именно собираетесь запустить.
5.2. Альтернативные дистрибутивы
Помимо стандартного установщика python.org для macOS, существуют сторонние дистрибутивы macOS, которые могут включать дополнительные возможности. Вот некоторые популярные дистрибутивы и их основные функции:
- ActivePython
-
Установщик с поддержкой нескольких платформ и документацией
- Anaconda
-
Популярные научные модули (например, numpy, scipy и pandas) и менеджер пакетов
conda. - Homebrew
-
Менеджер пакетов для macOS, включающий несколько версий Python и множество сторонних пакетов на основе Python (в том числе numpy, scipy и pandas).
- MacPorts
-
Ещё один менеджер пакетов для macOS, включающий несколько версий Python и множество сторонних пакетов на основе Python. Может содержать готовые версии Python и множество пакетов для старых версий macOS.
Обратите внимание: дистрибутивы могут не включать последние версии Python или других библиотек и не обслуживаются и не поддерживаются основной командой Python.
5.3. Установка дополнительных пакетов Python
Дополнительную информацию см. в руководстве пользователя по упаковке Python.
5.4. Разработка графических интерфейсов
Для создания графических приложений на Mac с использованием Python доступно несколько вариантов.
Стандартный набор инструментов Python для создания графических интерфейсов — tkinter, основанный на кроссплатформенном наборе инструментов Tk (https://www.tcl.tk). Нативная версия Tk для macOS включена в установщик.
PyObjC — это привязка Python к фреймворку Apple Objective-C/Cocoa. Информация о PyObjC доступна на странице pyobjc.
Доступен ряд альтернативных наборов инструментов для создания графических интерфейсов в macOS, в том числе:
- PySide: официальные привязки Python к набору инструментов Qt для графических интерфейсов.
- PyQt: альтернативные привязки Python к Qt.
- Kivy: кроссплатформенный набор инструментов для создания графических интерфейсов, поддерживающий настольные и мобильные платформы.
- Toga: часть проекта BeeWare; поддерживает настольные, мобильные, веб-приложения и приложения для консоли.
- wxPython: кроссплатформенный набор инструментов, поддерживающий настольные операционные системы.
5.5. Дополнительные темы
5.5.1. Установка сборок без GIL
Добавлено в версии 3.13: (экспериментальная функция)
Примечание
Всё описанное в этом разделе считается экспериментальным; следует ожидать, что в будущих выпусках оно может измениться.
Установочный пакет python.org Python для macOS может дополнительно установить сборку Python 3.13 с поддержкой PEP 703 — экспериментальной функции, позволяющей работать без GIL (с отключённой глобальной блокировкой интерпретатора). Проверьте страницу выпуска на python.org: там может быть обновлённая информация.
Поскольку эта функция всё ещё считается экспериментальной, её поддержка не устанавливается по умолчанию. Она упакована как отдельный параметр установки, который можно выбрать, нажав кнопку Настроить на этапе Тип установки установщика, как описано выше.
Если установлен флажок рядом с именем пакета Python без GIL, отдельный PythonT.framework также будет установлен вместе с обычным Python.framework в /Library/Frameworks. Такая конфигурация позволяет сборке Python 3.13 без GIL сосуществовать в системе с традиционной сборкой Python 3.13 (только с GIL) с минимальным риском при установке или тестировании. Сам этот способ установки является экспериментальным и может измениться в будущих выпусках.
Известные ограничения и предостережения:
- Пакет Инструменты командной строки UNIX, выбранный по умолчанию, установит ссылки в
/usr/local/binдляpython3.13t— интерпретатора без GIL — иpython3.13t-config— утилиты настройки, которая может быть полезна сборщикам пакетов. Поскольку/usr/local/binобычно включён в путь поиска оболочкиPATH, в большинстве случаев для использованияpython3.13tне потребуется менять переменные окруженияPATH. - В этом выпуске пакет Обновление профиля оболочки и
Update Shell Profile.commandв/Applications/Python 3.13/не поддерживают пакет без GIL. -
Сборки без GIL и традиционные сборки имеют отдельные пути поиска и отдельные каталоги
site-packages, поэтому, если пакет должен быть доступен в обеих сборках, по умолчанию его может потребоваться установить в обе. В пакет без GIL устанавливается отдельный экземпляр pip для использования сpython3.13t.-
Чтобы установить пакет с помощью pip без venv:
python3.13t -m pip install <package_name>
-
-
При работе с несколькими окружениями Python обычно безопаснее и проще всего создавать и использовать виртуальные окружения. Это поможет избежать возможных конфликтов имён команд и путаницы с тем, какая версия Python используется:
python3.13t -m venv <venv_name>
затем выполните команду activate.
-
Чтобы запустить версию IDLE без GIL:
python3.13t -m idlelib
- Интерпретаторы обеих сборок используют одни и те же переменные окружения PYTHON, что может привести к неожиданным результатам, например если в профиле оболочки задана
PYTHONPATH. При необходимости можно использовать параметры командной строки, например-E, чтобы игнорировать эти переменные окружения. - Сборка без GIL связывается со сторонними общими библиотеками, такими как
OpenSSLиTk, установленными в традиционном фреймворке. Это означает, что обе сборки также используют один набор сертификатов доверия, установленных скриптом Install Certificates.command, поэтому запускать его нужно только один раз. -
Если нельзя полагаться на то, что ссылка в
/usr/local/binуказывает наpython.orgбез GILpython3.13t(например, если вы хотите установить туда собственную версию или это сделает другой дистрибутив), можно явно задать переменную окружения оболочкиPATH, включив в неё каталогbinфреймворкаPythonT:export PATH="/Library/Frameworks/PythonT.framework/Versions/3.13/bin":"$PATH"
Традиционная установка фреймворка по умолчанию делает нечто подобное, но для
Python.framework. Помните, что наличие обоих каталоговbinфреймворка вPATHможет привести к путанице при наличии совпадающих имён, напримерpython3.13в обоих каталогах; используемый вариант зависит от порядка их расположения вPATH. Командыwhich python3.xилиwhich python3.xtпоказывают, какой путь используется. Виртуальные окружения помогают избежать подобных неоднозначностей. Ещё один вариант — создать псевдоним оболочки alias для нужного интерпретатора, например:alias py3.13="/Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13" alias py3.13t="/Library/Frameworks/PythonT.framework/Versions/3.13/bin/python3.13t"
5.5.2. Установка с помощью командной строки
Если для установки установочного пакета python.org требуется автоматизация (вместо использования привычного графического приложения macOS Installer), можно также выбрать нестандартные параметры с помощью утилиты командной строки macOS installer. Если вы не знакомы с installer, эта утилита может показаться несколько загадочной (подробности см. в man installer). В качестве примера следующий фрагмент скрипта оболочки показывает один из способов установки: используется выпуск 3.13.0b2 и выбирается вариант интерпретатора без GIL:
RELEASE="python-3.130b2-macos11.pkg"
# download installer pkg
curl -O https://www.python.org/ftp/python/3.13.0/${RELEASE}
# create installer choicechanges to customize the install:
# enable the PythonTFramework-3.13 package
# while accepting the other defaults (install all other packages)
cat > ./choicechanges.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>attributeSetting</key>
<integer>1</integer>
<key>choiceAttribute</key>
<string>selected</string>
<key>choiceIdentifier</key>
<string>org.python.Python.PythonTFramework-3.13</string>
</dict>
</array>
</plist>
EOF
sudo installer -pkg ./${RELEASE} -applyChoiceChangesXML ./choicechanges.plist -target / Затем можно проверить, что доступны обе сборки установщика, например, с помощью следующей команды:
$ # test that the free-threaded interpreter was installed if the Unix Command Tools package was enabled $ /usr/local/bin/python3.13t -VV Python 3.13.0b2 experimental free-threading build (v3.13.0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)] $ # and the traditional interpreter $ /usr/local/bin/python3.13 -VV Python 3.13.0b2 (v3.13.0b2:3a83b172af, Jun 5 2024, 12:50:24) [Clang 15.0.0 (clang-1500.3.9.4)] $ # test that they are also available without the prefix if /usr/local/bin is on $PATH $ python3.13t -VV Python 3.13.0b2 experimental free-threading build (v3.13.0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)] $ python3.13 -VV Python 3.13.0b2 (v3.13.0b2:3a83b172af, Jun 5 2024, 12:50:24) [Clang 15.0.0 (clang-1500.3.9.4)]
Примечание
Текущие установщики python.org устанавливаются только в фиксированные расположения, такие как /Library/Frameworks/, /Applications и /usr/local/bin. Нельзя использовать параметр -domain команды installer для установки в другие расположения.
5.5.3. Распространение приложений Python
Существует ряд инструментов для преобразования кода Python в отдельное распространяемое приложение:
-
py2app: поддерживает создание пакетов macOS
.appна основе проекта Python. -
Briefcase: часть проекта BeeWare; кроссплатформенный инструмент упаковки, поддерживающий создание пакетов
.appв macOS, а также управление подписью и нотариальным заверением. - PyInstaller: кроссплатформенный инструмент упаковки, создающий один файл или папку в качестве распространяемого артефакта.
5.5.4. Соответствие требованиям App Store
Приложения, отправляемые для распространения через App Store для macOS, должны пройти проверку приложений Apple. Этот процесс включает набор автоматизированных правил проверки, которые анализируют отправленный пакет приложения на наличие проблемного кода.
Стандартная библиотека Python содержит код, который, как известно, нарушает эти автоматизированные правила. Хотя эти нарушения, по-видимому, являются ложными срабатываниями, оспорить правила проверки Apple нельзя. Поэтому для прохождения проверки App Store необходимо изменить стандартную библиотеку Python.
В дереве исходного кода Python содержится файл с патчем, удаляющим весь код, который, как известно, вызывает проблемы при проверке App Store. Этот патч применяется автоматически, если CPython настроен с параметром --with-app-store-compliance.
Этот патч обычно не требуется для использования CPython на Mac; он также не нужен, если вы распространяете приложение вне App Store для macOS. Он требуется только в том случае, если App Store для macOS используется в качестве канала распространения.
5.6. Другие ресурсы
На странице справки python.org есть ссылки на множество полезных ресурсов. Ещё один источник поддержки — список рассылки Pythonmac-SIG, предназначенный специально для пользователей и разработчиков Python на Mac.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/using/mac.html