Использование 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, где это возможно. Текущие установщики предоставляют сборку universal2 Python, которая работает на всех Mac (Apple Silicon и Intel), которые поддерживаются широким спектром версий macOS, в настоящее время обычно начиная с macOS 10.13 High Sierra и выше.
Загруженный файл — это стандартный пакет установщика macOS (.pkg). Информация о целостности файла (контрольная сумма, размер, подпись sigstore и т.д.) включена на странице загрузки выпуска. Пакеты установщиков и их содержимое подписаны и проверены с помощью Python Software Foundation сертификатов Apple Developer ID, чтобы соответствовать требованиям macOS Gatekeeper.
Для стандартной установки дважды щелкните файл загруженного пакета установщика. Это должно запустить стандартное приложение macOS Installer и отобразить первый из нескольких шагов окон установщика.
Нажатие кнопки Продолжить выводит Файл «Прочтите меня» для этого установщика. Помимо другой важной информации, Файл «Прочтите меня» указывает, какая версия Python будет установлена и на каких версиях macOS она поддерживается. Возможно, вам потребуется прокрутить весь файл. По умолчанию этот Файл «Прочтите меня» также будет установлен в /Applications/Python 3.13/ и доступен для чтения в любое время.
Нажатие кнопки Продолжить отображает лицензионное соглашение для Python и другого включенного программного обеспечения. Затем вам необходимо Принять условия лицензионного соглашения, прежде чем перейти к следующему шагу. Этот лицензионный файл также будет установлен и доступен для чтения позже.
После принятия условий лицензионного соглашения следующим шагом является отображение Типа установки. Для большинства случаев подходит стандартный набор операций установки.
Нажав кнопку Настроить, вы можете выбрать, исключить или выбрать определённые компоненты пакета установщика. Щелкните имя каждого пакета, чтобы увидеть описание того, что он устанавливает. Чтобы также установить поддержку опциональной экспериментальной функции свободных потоков, см. Установка библиотек с поддержкой свободных потоков.
В любом случае, нажатие Установить начнёт процесс установки, запросив разрешение на установку нового программного обеспечения. Требуется имя пользователя 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, который обрабатывает двойные щелчки по файлам скриптов Python из Finder macOS. - Фреймворк
/Library/Frameworks/Python.framework, который включает исполняемый файл Python и библиотеки. Установщик добавляет это местоположение в ваш путь оболочки. Чтобы удалить Python, вы можете удалить эти три вещи. Символьные ссылки на исполняемый файл Python размещаются в/usr/local/bin/.
Примечание
Недавние версии macOS включают команду python3 в /usr/bin/python3, которая ссылается на, как правило, более старую и неполную версию Python, предоставляемую и используемую инструментами разработки Apple, Xcode или Инструменты командной строки для Xcode. Никогда не изменяйте и не пытайтесь удалить эту установку, так как она контролируется Apple и используется программным обеспечением, предоставляемым или сторонним. Если вы выберете установку более новой версии Python с python.org, у вас на компьютере будут две различные, но функциональные установки Python, которые могут сосуществовать. Параметры стандартного установщика должны гарантировать, что python3 будет использоваться вместо системного python3.
5.1.2. Как запустить скрипт Python
Существует два способа запуска интерпретатора Python. Если вы знакомы с использованием оболочки Unix в окне терминала, вы можете запустить python3.13 или python3 необязательно после одной или нескольких командных параметров (описанных в Командная строка и среда). В учебнике Python также есть полезный раздел о интерактивном использовании Python из оболочки.
Вы также можете запустить интерпретатор через интегрированную среду разработки. IDLE — это базовая среда редактора и интерпретатора, которая входит в стандартный дистрибутив Python. IDLE включает меню Справка, которое позволяет получить доступ к документации Python. Если вы новичок в Python, вы можете прочитать вводный учебник в этом документе.
Существуют и другие доступные редакторы и среды разработки, см. Редакторы и среды разработки для получения дополнительной информации.
Чтобы запустить файл скрипта Python из окна терминала, вы можете запустить интерпретатор с именем файла скрипта:
python3.13 myscript.py
Чтобы запустить свой скрипт из Finder, вы можете:
- Перетащить его в Загрузчик Python.
- Выбрать Загрузчик Python в качестве приложения по умолчанию для открытия вашего скрипта (или любого скрипта
.py) через окно информации Finder и дважды щелкнуть по нему. Загрузчик Python имеет различные параметры для управления запуском вашего скрипта. Нажатие клавиши 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 для GUI — это tkinter, основанный на кроссплатформенном наборе инструментов Tk (https://www.tcl.tk). macOS-совместимая версия Tk включена в установщик.
PyObjC — это связка Python для фреймворка Apple Objective-C/Cocoa. Информация о PyObjC доступна на сайте pyobjc.
Доступны и другие альтернативные наборы инструментов macOS GUI:
- PySide: Официальные Python-связки к набору инструментов графического интерфейса Qt.
- PyQt: Альтернативные Python-связки к Qt.
- Kivy: Кроссплатформенный набор инструментов GUI, поддерживающий настольные и мобильные платформы.
- Toga: Часть проекта BeeWare; поддерживает приложения для настольных компьютеров, мобильных устройств, веб-браузеров и консолей.
- wxPython: Кроссплатформенный набор инструментов, поддерживающий настольные операционные системы.
5.5. Расширенные темы
5.5.1. Установка библиотек с поддержкой многопоточности
Добавлен в версии 3.13: (Экспериментальная)
Примечание
Все описанное в этом разделе считается экспериментальным и может измениться в будущих выпусках.
Установка python.org Python для macOS включает дополнительную сборку Python 3.13, поддерживающую PEP 703, экспериментальную функцию поддержки многопоточности (запуск без глобальной блокировки интерпретатора). Проверьте страницу выпуска на python.org для возможной обновленной информации.
Поскольку эта функция все еще считается экспериментальной, поддержка её не устанавливается по умолчанию. Она упакована как отдельный параметр установки, доступный щелчком по кнопке Настроить на шаге Тип установки установщика, как описано выше.
Если флажок рядом с именем пакета Многопотоковый Python установлен, то дополнительно будет установлена PythonT.framework наряду с обычной Python.framework в /Library/Frameworks. Такая конфигурация позволяет многопотоковой сборке Python 3.13 существовать на вашей системе вместе с традиционной (только GIL) сборкой Python 3.13 с минимальным риском при установке или тестировании. Эта схема установки сама по себе экспериментальная и может быть изменена в будущих версиях.
Известные предостережения и ограничения:
- Пакет Утилиты командной строки UNIX, который выбран по умолчанию, установит ссылки в
/usr/local/binдляpython3.13t, многопоточного интерпретатора, иpython3.13t-config, утилиты конфигурации, которая может быть полезна для разработчиков пакетов. Поскольку/usr/local/binобычно включена в вашу оболочкуPATH, в большинстве случаев не потребуется изменять переменные окруженияPATHдля использованияpython3.13t. - В этом выпуске пакет Обновления профиля оболочки и
Update Shell Profile.commandв/Applications/Python 3.13/не поддерживают многопотоковый пакет. -
Многопотоковая сборка и традиционная сборка имеют отдельные пути поиска и отдельные каталоги
site-packagesпоэтому, если вам нужен пакет, доступный в обеих сборках, его, по умолчанию, нужно установить в обеих. Многопотоковый пакет установит отдельный экземпляр pip для использования сpython3.13t.-
Для установки пакета с помощью pip без venv:
python3.13t-m pip install <package_name>
-
-
При работе с несколькими средами Python обычно безопаснее и проще создавать и использовать виртуальные среды. Это может предотвратить возможные конфликты имен команд и непонимание, какой Python используется:
python3.13t-m venv <venv_name>затем активировать.
-
Для запуска многопотоковой версии IDLE:
python3.13t-m idlelib - Интерпретаторы в обеих сборках реагируют на те же переменные окружения PYTHON, что может привести к непредвиденным результатам, например, если у вас установлена переменная
PYTHONPATHв профиле оболочки. При необходимости существуют параметры командной строки, такие как-Eдля игнорирования этих переменных окружения. - Многопотоковая сборка ссылается на сторонние общие библиотеки, такие как
OpenSSLиTk, установленные в традиционной среде. Это означает, что обе сборки также используют один набор сертификатов доверия, установленных скриптом Install Certificates.command, поэтому его нужно запускать только один раз. -
Если вы не можете положиться на ссылку в
/usr/local/binна многопоточнуюpython.orgpython3.13t(например, если вы хотите установить свою версию или какая-то другая дистрибуция), вы можете явно установить переменную окружения оболочкиPATHдля включения каталога фреймворкаPythonTbin.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 GUI), утилита командной строки macOS installer также позволяет выбирать нестандартные параметры. Если вы не знакомы с installer, она может быть довольно непонятной (см. man installer для получения дополнительной информации). В качестве примера, следующий фрагмент оболочки демонстрирует один способ сделать это, используя выпуск 3.13.0b2 и выбор многопоточного интерпретатора:
RELEASE="python-3.13.0b2-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. Вы не можете использовать параметр installer -domain для установки в другие места.
5.5.3. Распространение приложений Python
Существует ряд инструментов для преобразования вашего кода Python в автономное распространяемое приложение:
-
py2app: Поддерживает создание пакетов macOS
.appиз проекта Python. -
Briefcase: Часть проекта BeeWare; кроссплатформенная утилита для упаковки, которая поддерживает создание пакетов
.appна macOS, а также управление подписью и проверкой. - PyInstaller: Кроссплатформенная утилита для упаковки, которая создает один файл или папку в качестве распространяемого артефакта.
5.5.4. Соответствие требованиям App Store
Приложения, которые подаются на распространение через macOS App Store, должны пройти процесс проверки приложения Apple. Этот процесс включает набор автоматических правил проверки, которые проверяют пакет приложения на наличие проблемного кода.
Стандартная библиотека Python содержит код, который, как известно, нарушает эти автоматические правила. Хотя эти нарушения, похоже, являются ложными срабатываниями, правила проверки Apple не подлежат оспариванию. Поэтому необходимо изменить стандартную библиотеку Python, чтобы приложение прошло проверку в App Store.
Дерево исходного кода Python содержит файл патча, который удалит весь код, который, как известно, вызывает проблемы с процессом проверки App Store. Этот патч применяется автоматически при конфигурации CPython с помощью --with-app-store-compliance параметра.
Этот патч обычно не требуется для использования CPython на Mac; он также не требуется, если вы распространяете приложение вне macOS App Store. Он необходим только если вы используете macOS App Store в качестве канала распространения.
5.6. Другие ресурсы
На странице справки python.org есть ссылки на множество полезных ресурсов. Также есть рассылка Pythonmac-SIG, являющаяся дополнительным источником поддержки для пользователей и разработчиков Python на Mac.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/using/mac.html