5. 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 ambiente integrado de desenvolvimento
(IDE) e o Gerenciador de Pacotes, que merecem destaque.


5.1. Obtendo e instalando o Python
==================================

O macOS costumava vir com o Python 2.7 pré-instalado entre as versões
10.8 e 12.3. Convidamos você a instalar a versão mais recente do
Python 3 no site do Python.. Uma versão atual do "binário universal2"
do Python, que funciona nativamente nos novos processadores Apple
Silicon e nos legados Intel 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.11" na sua pasta "Applications". Aqui você
  encontra o IDLE, o ambiente de desenvolvimento que é parte padrão
  das distribuições oficiais do Python; e **Python Launcher**, 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 Python, você
  pode remover essas três coisas. Um link simbólico para o executável
  Python é colocado em "/usr/local/bin/".

Nota:

  No macOS da versão 10.8 ao 12.3, a construção do Python fornecido
  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 Help (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.


5.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 **nano**. Se você deseja um editor mais
ao estilo do Mac, **BBEdit** da Bare Bones Software (consulte
https://www.barebones.com/products/bbedit/index.html) são boas
escolhas , como é **TextMate** (consulte https://macromates.com).
Outros editores incluem **MacVim** (https://macvim.org) e **Aquamacs**
(https://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 **Python Launcher**.

* Selecionar **Python Launcher** 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. **Python Launcher** tem 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.


5.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**.


5.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 Technical Q&A QA1067 para
obter detalhes.

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


5.2. A IDE
==========

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


5.3. Instalando pacotes adicionais ao python
============================================

Esta seção foi movida para o Guia de Usuário para Empacotamento de
Python.


5.4. Programação de GUI
=======================

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.

Vários kits de ferramentas alternativos da GUI do macOS estão
disponíveis:

* PySide: Ligações oficiais do Python ao Qt GUI toolkit.

* PyQt: Ligações alternativas do Python ao Qt.

* Kivy: Um kit de ferramentas GUI multiplataforma que oferece suporte
  a plataformas desktop e móveis.

* Toga: Parte do Projeto BeeWare; oferece suporte a aplicativos de
  desktop, dispositivos móveis, web e console.

* wxPython: Um kit de ferramentas multiplataforma que oferece suporte
  a sistemas operacionais de desktop.


5.5. Distribuindo aplicações Python
===================================

Existe uma variedade de ferramentas para converter seu código Python
em uma aplicação distribuível independente:

* py2app: Suporta a criação de pacotes ".app" do macOS a partir de um
  projeto Python.

* Briefcase: Parte do Projeto BeeWare; uma ferramenta de empacotamento
  multiplataforma que suporta a criação de pacotes ".app" no macOS,
  bem como o gerenciamento de assinatura e reconhecimento de firma.

* PyInstaller: Uma ferramenta de empacotamento multiplataforma que
  cria um único arquivo ou pasta como um artefato distribuível.


5.6. Outros recursos
====================

A lista de discussão do Pythonmac-SIG é 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
