4. Usando Python en una Macintosh
*********************************

Autor:
   Bob Savage <bobsavage@mac.com>

Python en una Macintosh con Mac OS X es, en principio, muy similar a
Python en cualquier otra plataforma Unix, pero hay una serie de
características adicionales como el IDE y el Administrador de paquetes
que vale la pena resaltar.


4.1. Obteniendo e instalando MacPython
======================================

Mac OS X 10.8 viene con Python 2.7 preinstalado por Apple. Si lo
desea, está invitado a instalar la versión más reciente de Python 3
desde el sitio web de Python (https://www.python.org). Allí está
disponible una versión actual “binaria universal” de Python, que se
ejecuta de forma nativa en las nuevas CPU Intel y PPC heredadas de
Mac.

Lo que obtienes después de instalar es una serie de cosas:

* A "Python 3.8" folder in your "Applications" folder. In here you
  find IDLE, the development environment that is a standard part of
  official Python distributions; and PythonLauncher, which handles
  double-clicking Python scripts from the Finder.

* Un *framework* "/Library/Frameworks/Python.framework", el cual
  incluye los ejecutables y librerías de Python. El instalador añade
  esta ubicación a su variable de entorno. Para desinstalar MacPython,
  usted puede simplemente remover estas tres cosas. Un enlace
  simbólico al ejecutable de Python es colocado en /usr/local/bin/.

La compilación proporcionada por Apple de Python se instala en
"/System/Library/Frameworks/Python.framework" y "/usr/bin/python",
respectivamente. Nunca debe modificarlos ni eliminarlos, ya que están
controlados por Apple y son utilizados por software de Apple o de
terceros. Recuerde que si elige instalar una versión más reciente de
Python desde python.org, tendrá dos instalaciones de Python diferentes
pero funcionales en su computadora, por lo que será importante que sus
rutas y usos sean consistentes con lo que desea hacer.

IDLE incluye un menú de ayuda que le permite acceder a la
documentación de Python. Si es completamente nuevo en Python, debe
comenzar a leer la introducción del tutorial en ese documento.

Si está familiarizado con Python en otras plataformas Unix, debe leer
la sección sobre cómo ejecutar scripts Python desde el *shell* de
Unix.


4.1.1. Cómo ejecutar un *script* de Python
------------------------------------------

Su mejor manera de comenzar a usar Python en Mac OS X es a través del
entorno de desarrollo integrado IDLE, consulte la sección El IDE y use
el menú Ayuda cuando se ejecute el IDE.

Si desea ejecutar scripts de Python desde la línea de comandos de la
ventana de Terminal o desde Finder, primero necesita un editor para
crear su script. Mac OS X viene con una serie de editores de línea de
comandos estándar de Unix, **vim** y **emacs** entre ellos. Si desea
un editor más parecido a Mac, **BBEdit** o **TextWrangler** de Bare
Bones Software (consulte
http://www.barebones.com/products/bbedit/index.html) son buenas
opciones , ya que son **TextMate** (consulte https://macromates.com/).
Otros editores incluyen **Gvim** (http://macvim-dev.github.io/macvim/)
y **Aquamacs** (http://aquamacs.org/).

Para ejecutar su *script* desde la ventana Terminal, debe asegurarse
de que: "/usr/local/bin" esté en su ruta de búsqueda de *shell*.

Para ejecutar su *script* desde el Finder, tiene dos opciones:

* Arrástrelo a **PythonLauncher**

* Seleccione **PythonLauncher** como aplicación predeterminada para
  abrir su *script* (o cualquier *script* .py) a través de la ventana
  de información del buscador y haga doble clic en ella.
  **PythonLauncher** tiene varias preferencias para controlar cómo se
  inicia su secuencia de comandos. La opción de arrastrar le permite
  cambiarlos para una invocación, o usar su menú de Preferencias para
  cambiar las cosas globalmente.


4.1.2. Ejecutar scripts con una GUI
-----------------------------------

Con versiones anteriores de Python, hay una peculiaridad de Mac OS X
que debe conocer: los programas que hablan con el administrador de
ventanas Aqua (en otras palabras, cualquier cosa que tenga una GUI)
deben ejecutarse de una manera especial. Use **pythonw** en vez de
**python** para comenzar tales scripts.

Con Python 3.8, usted podrá utilizar ya sea **python** o **pythonw**.


4.1.3. Configuración
--------------------

Python en OS X respeta todas las variables de entorno estándar de Unix
como "PYTHONPATH", pero configurar estas variables para programas
iniciados desde el Finder no es estándar ya que Finder no lee su
".profile" o ".cshrc" al arranque. Usted necesita crear un nuevo
archivo "~/.MacOSX/environment.plist". Consulte el documento técnico
de Apple QA1067 para más detalles.

Para obtener más información sobre la instalación de paquetes de
Python en MacPython, consulte la sección Instalación de paquetes
adicionales de Python.


4.2. El IDE
===========

MacPython se entrega con el entorno de desarrollo IDLE estándar. Se
puede encontrar una buena introducción al uso de IDLE en
http://www.hashcollision.org/hkn/python/idle_intro/index.html.


4.3. Instalación de paquetes adicionales de Python
==================================================

Existen varios métodos para instalar paquetes Python adicionales:

* Los paquetes se pueden instalar a través del modo *distutils*
  estándar de Python ("python setup.py install").

* Muchos paquetes también se pueden instalar a través de la extensión
  **setuptools** o el *wrapper* **pip**, consulte
  https://pip.pypa.io/.


4.4. Programación de GUI en Mac
===============================

Hay varias opciones para crear aplicaciones GUI en Mac con Python.

*PyObjC* es un enlace de Python al *framework* Objective-C/Cocoa de
Apple, que es la base del desarrollo más moderno de Mac. La
información sobre PyObjC está disponible en
https://pypi.org/project/pyobjc/.

El kit de herramientas estándar de Python GUI es "tkinter", basado en
el kit de herramientas Tk multiplataforma (https://www.tcl.tk). Apple
incluye una versión nativa de Aqua de Tk, y la última versión puede
ser descargada e instalada desde https://www.activestate.com; También
se puede incorporar desde la fuente.

*wxPython* es otro kit de herramientas GUI multiplataforma popular que
se ejecuta de forma nativa en Mac OS X. Los paquetes y la
documentación están disponibles en https://www.wxpython.org.

*PyQt* es otro kit de herramientas GUI multiplataforma popular que se
ejecuta de forma nativa en Mac OS X. Más información podrá ser
encontrada en https://riverbankcomputing.com/software/pyqt/intro.


4.5. Distribuyendo aplicaciones de Python en la Mac
===================================================

La herramienta estándar para implementar aplicaciones independientes
de Python en Mac es **py2app**. Puede encontrar más información sobre
la instalación y el uso de py2app en
http://undefined.org/python/#py2app.


4.6. Otros recursos
===================

La lista de correo de MacPython es un excelente recurso de soporte
para usuarios y desarrolladores de Python en Mac:

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

Otro recurso útil es el wiki de MacPython:

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