4. Использование Python на Macintosh

Автор:Боб Сэвидж

Python на Macintosh под управлением Mac OS X в принципе очень похож на Python на любой другой платформе Unix, но есть ряд дополнительных функций, таких как IDE и диспетчер пакетов, на которые стоит обратить внимание.

4.1. Получение и установка MacPython

Mac OS X 10.8 поставляется с Python 2.7, предустановленным Apple. Если нужно, вы можете установить самую последнюю версию Python 3 с веб-сайта Python. Здесь доступна текущая «универсальная двоичная» сборка Python, которая изначально работает на новом процессоре Intel и устаревших процессорах PPC Mac.

После установки вы получите несколько вещей:

  • Папка Python 3.8 в папке Applications. Здесь вы найдете IDLE, среду разработки, которая является стандартной частью официальных дистрибутивов Python; и PythonLauncher, который обрабатывает скрипты Python двойным щелчком из Finder.
  • Фреймворк /Library/Frameworks/Python.framework, который включает исполняемый файл Python и библиотеки. Установщик добавляет это местоположение в путь к вашей оболочке. Чтобы удалить MacPython, вы можете просто удалить эти три вещи. Символьная ссылка на исполняемый файл Python находится в /usr/local/bin/.

Предоставленная Apple сборка Python установлена в /System/Library/Frameworks/Python.framework и /usr/bin/python соответственно. Вы никогда не должны изменять или удалять их, поскольку они контролируются Apple и используются программным обеспечением Apple или сторонними производителями. Помните, что если вы решите установить более новую версию Python с официального сайта, у вас будут две разные, но функциональные установки Python на вашем компьютере, поэтому важно, чтобы ваши пути и способы использования соответствовали тому, что вам нужно.

IDLE включает меню справки, которое позволяет получить доступ к документации Python. Если вы новичок в Python, вам следует начать читать введение в этот документ.

Если вы знакомы с Python на других платформах Unix, вам следует прочитать раздел о запуске сценариев Python из оболочки Unix.

4.1.1. Как запустить Python скрипт

Лучший способ начать работу с Python в Mac OS X — использовать интегрированную среду разработки IDLE, см. раздел IDE и использовать меню «Help» во время работы IDE.

Если вы хотите запускать скрипты Python из командной строки окна терминала или из Finder, вам сначала понадобится редактор для создания вашего скрипта. Mac OS X поставляется с рядом стандартных редакторов командной строки Unix, среди которых vim и emacs. Если вам нужен редактор, более похожий на Mac, BBEdit или TextWrangler от Bare Bones Software — хороший выбор, как и TextMate. Другие редакторы включают Gvim и Aquamacs.

Чтобы запустить сценарий из окна терминала, вы должны убедиться, что /usr/local/bin находится в пути поиска вашей оболочки.

Чтобы запустить сценарий из Finder, у вас есть два варианта:

  • Перетащите его на PythonLauncher
  • Выберите PythonLauncher в качестве приложения по умолчанию, чтобы открыть ваш скрипт (или любой другой скрипт .py) через информационное окно Finder, и дважды щелкните его. У PythonLauncher есть различные настройки для управления запуском вашего скрипта. Необязательное перетаскивание позволяет вам изменить их для одного вызова или использовать его меню Preferences, чтобы изменить вещи глобально.

4.1.2. Запуск скриптов с графическим интерфейсом

В более старых версиях Python есть одна особенность Mac OS X, о которой вам нужно знать: программы, которые взаимодействуют с оконным менеджером Aqua (другими словами, всё, что имеет графический интерфейс), должны запускаться особым образом. Для запуска таких сценариев используйте pythonw вместо python.

С Python 3.8 вы можете использовать python или pythonw.

4.1.3. Конфигурация

Python в OS X учитывает все стандартные переменные среды Unix, такие как PYTHONPATH, но установка этих переменных для программ, запускаемых из Finder, нестандартна, поскольку Finder не считывает ваши .profile или .cshrc при запуске. Вам необходимо создать файл ~/.MacOSX/environment.plist. Подробности см. в техническом документе Apple QA1067.

Дополнительные сведения об установке пакетов Python в MacPython см. в разделе Установка дополнительных пакетов Python.

4.2. IDE

MacPython поставляется со стандартной средой разработки IDLE. Хорошее введение в использование IDLE можно найти на ресурсе.

4.3. Установка дополнительных пакетов Python

Есть несколько способов установить дополнительные пакеты Python:

  • Пакеты могут быть установлены через стандартный режим Python distutils (python setup.py install).
  • Многие пакеты также можно установить через расширение setuptools или обёртку pip.

4.4. Программирование графического интерфейса пользователя на Mac

Существует несколько вариантов создания приложений с графическим интерфейсом пользователя на Mac с помощью Python.

PyObjC — это привязка Python к платформе Apple Objective-C/Cocoa, которая является основой большинства современных разработок для Mac. Информация о PyObjC доступна по адресу https://pypi.org/project/pyobjc/.

Стандартный набор инструментов Python GUI — tkinter, основан на кроссплатформенном наборе инструментов Tk (https://www.tcl.tk). Версия Tk для Aqua поставляется в комплекте с OS X от Apple, а последнюю версию можно загрузить и установить с https://www.activestate.com; его также можно собрать из исходников.

wxPython — ещё один популярный кроссплатформенный набор инструментов для графического интерфейса, который изначально работает в Mac OS X. Пакеты и документация доступны по адресу https://www.wxpython.org.

PyQt — ещё один популярный кроссплатформенный набор инструментов для графических интерфейсов, который изначально работает в Mac OS X. Дополнительную информацию можно найти на https://riverbankcomputing.com/software/pyqt/intro.

4.5. Распространение приложений Python на Mac

Стандартный инструмент для развертывания автономных приложений Python на Mac — py2app. Дополнительную информацию об установке и использовании py2app можно найти на сайте.

4.6. Другие источники

Список рассылки MacPython — отличный ресурс поддержки для пользователей Python и разработчиков на Mac.

Ещё один полезный ресурс — вики MacPython: