4. Utilizando Python em um Mac
******************************

Autor:
   Bob Savage <bobsavage@mac.com>

O Python em um Mac executando o macOS é, em princípio, muito
semelhante ao Python em qualquer outra plataforma Unix, mas há vários
recursos adicionais, como o IDE e o Gerenciador de Pacotes, que
merecem destaque.


4.1. Obtendo e instalando MacPython
===================================

O macOS, desde sua versão 10.8, vem com o Python 2.7 pré-instalado
pela Apple. Se desejar, você está convidado a instalar a versão mais
recente do Python 3 no site do Python (https://www.python.org). Uma
versão atual do "binário universal" do Python, que funciona
nativamente nas novas CPUs Intel e PPC herdadas do Mac, está
disponível lá.

O que você obtém após a instalação é uma série de coisas:

* A pasta "Python 3.9" na sua pasta "Applications". Aqui você encontra
  o IDLE, o ambiente de desenvolvimento que é parte padrão das
  distribuições oficiais do Python; e PythonLauncher, que lida com
  scripts de Python clicando duas vezes no Finder.

* Um framework "/Library/Frameworks/Python.framework", que inclui o
  executável e as bibliotecas do Python. O instalador adiciona esse
  local ao seu caminho do console. Para desinstalar o MacPython, você
  pode simplesmente remover essas três coisas. Um link simbólico para
  o executável Python é colocado em /usr/local/bin/.

A compilação do Python fornecida pela Apple é instalada em
"/System/Library/Frameworks/Python.framework" e "/usr/bin/python",
respectivamente. Você nunca deve modificá-las ou excluí-las, pois elas
são controladas pela Apple e são usadas por software da Apple ou de
terceiros. Lembre-se de que, se você optar por instalar uma versão
mais recente do Python a partir do python.org, terá duas instalações
Python diferentes, mas funcionais, no seu computador, por isso será
importante que seus caminhos e usos sejam consistentes com o que você
deseja fazer.

O IDLE inclui um menu de ajuda que permite acessar a documentação do
Python. Se você é completamente novo no Python, comece a ler a
introdução do tutorial nesse documento.

Se você está familiarizado com o Python em outras plataformas Unix,
leia a seção sobre a execução de scripts Python no shell do Unix.


4.1.1. Como executar um script Python
-------------------------------------

A melhor maneira de você começar o uso do Python no macOS é através do
ambiente de desenvolvimento integrado IDLE, consulte a seção A IDE e
use o menu Help quando o IDE estiver em execução.

Se você deseja executar scripts Python na linha de comando da janela
Terminal ou no Finder, primeiro precisa de um editor para criar seu
script. O macOS vem com vários editores de linha de comando padrão do
Unix, entre os quais **vim** e **emacs**. Se você deseja um editor
mais ao estilo do Mac, **BBEdit** ou **TextWrangler** da Bare Bones
Software (consulte
http://www.barebones.com/products/bbedit/index.html) são boas escolhas
, como é **TextMate** (consulte https://macromates.com/). Outros
editores incluem **Gvim** (http://macvim-dev.github.io/macvim/) e
**Aquamacs** (http://aquamacs.org/).

Para executar seu script a partir da janela do Terminal, você deve se
certificar de que "/usr/local/bin" esteja no seu caminho de pesquisa
do shell.

Para executar seu script no Finder, você tem duas opções:

* Arrastá-lo para o **PythonLauncher**

* Selecionar **PythonLauncher** como aplicação padrão para abrir seu
  script (ou qualquer script .py) através da janela de Informações do
  Finder e clique duas vezes nele. **PythonLauncher** possui várias
  preferências para controlar como o script é iniciado. Arrastar com
  opções permite alterar esses itens para uma chamada ou usar o menu
  Preferências para alterar as coisas globalmente.


4.1.2. Executando scripts como uma GUI
--------------------------------------

Nas versões mais antigas do Python, há uma peculiaridade do macOS que
você precisa conhecer: os programas que conversam com o gerenciador de
janelas Aqua (em outras palavras, qualquer coisa que tenha uma GUI)
precisam ser executados de uma maneira especial. Use **pythonw** em
vez de **python** para iniciar esses scripts.

Com o Python 3.9, você pode usar **python** ou **pythonw**.


4.1.3. Configuração
-------------------

O Python no macOS honra todas as variáveis de ambiente padrão do Unix,
como "PYTHONPATH", mas definir essas variáveis para programas
iniciados no Finder não é padrão, pois o Finder não lê o seu
".profile" ou ".cshrc" na inicialização. Você precisa criar um arquivo
"~/.MacOSX/environment.plist". Consulte o Documento Técnico da Apple
QA1067 para obter detalhes.

Para obter mais informações sobre a instalação de pacotes Python no
MacPython, consulte a seção Instalando pacotes adicionais ao python.


4.2. A IDE
==========

O MacPython é fornecido com o ambiente de desenvolvimento IDLE padrão.
Uma boa introdução ao uso do IDLE pode ser encontrada em
http://www.hashcollision.org/hkn/python/idle_intro/index.html.


4.3. Instalando pacotes adicionais ao python
============================================

Existem vários métodos para instalar pacotes Python adicionais:

* Os pacotes podem ser instalados através do modo distutils padrão do
  Python ("python setup.py install").

* Muitos pacotes também podem ser instalados através da extensão
  **setuptools** ou do wrapper **pip**. Consulte https://pip.pypa.io/.


4.4. Programação de GUI no Mac
==============================

Existem várias opções para criar aplicações GUI no Mac com Python.

*PyObjC* é uma ligação do Python para o framework Objective-C/Cocoa da
Apple, que é a base do desenvolvimento mais moderno do Mac.
Informações sobre PyObjC estão disponíveis em
https://pypi.org/project/pyobjc/.

O kit de ferramentas de GUI padrão do Python é "tkinter", baseado no
kit de ferramentas plataforma cruzada Tk (https://www.tcl.tk). Uma
versão nativa do Aqua do Tk é fornecida com o OS X da Apple, e a
versão mais recente pode ser baixada e instalada em
https://www.activestate.com; também pode ser construído a partir do
código-fonte.

*wxPython* é outro popular kit de ferramentas de GUI multiplataforma
que funciona nativamente no macOS. Pacotes e documentação estão
disponíveis em https://www.wxpython.org.

*PyQt* é outro popular kit de ferramentas de GUI multiplataforma que
funciona nativamente no macOS. Mais informações podem ser encontradas
em https://riverbankcomputing.com/software/pyqt/intro.


4.5. Distribuindo aplicações Python no Mac
==========================================

A ferramenta padrão para implantar aplicações Python independentes no
Mac é **py2app**. Mais informações sobre a instalação e o uso do
py2app podem ser encontradas em https://pypi.org/project/py2app/.


4.6. Outros recursos
====================

A lista de discussão do MacPython é um excelente recurso de suporte
para usuários e desenvolvedores de Python no Mac:

https://www.python.org/community/sigs/current/pythonmac-sig/

Outro recurso útil é o wiki do MacPython:

https://wiki.python.org/moin/MacPython
