4. Utilisation de Python sur un Macintosh
*****************************************

Auteur:
   Bob Savage <bobsavage@mac.com>

Python sur un Macintosh exécutant Mac OS X est en principe très
similaire à Python sur n'importe quelle autre plateforme Unix, mais il
y a un certain nombre de fonctionnalités additionnelle telle que l'IDE
et le gestionnaire de paquets qui méritent d'être soulignées.


4.1. Obtenir et installer MacPython
===================================

Mac OS X 10.8 contient déjà Python 2.7 pré-installé par Apple. Si vous
le souhaitez, vous êtes invités à installer la version la plus récente
de Python 3 à partir du site de Python (https://www.python.org). Une
version "binaire universelle" de Python, qui s'exécute nativement sur
les nouveaux processeurs Intel de Mac et les processeurs PPC, CPUs
hérités de Mac, y est disponible.

Vous obtiendrez un certain nombre de choses après installation:

* Un dossier "MacPython 3.6" dans votre dossier "Applications". Dedans
  vous trouverez **IDLE**, l'environnement de développement qui fait
  partie des distributions Python officielles ; **PythonLauncher**,
  qui gère le lancement de scripts Python depuis le "Finder" ; et
  l'outil **"Build Applet"**, qui permets d'empaqueter des scripts
  Python en tant qu'applications à part entière sur votre système.

* Un **framework** "/Library/Frameworks/Python.framework", qui inclut
  l’exécutable Python et ses bibliothèques. L’installateur ajoute ce
  chemin à votre **PATH**. Pour désinstaller MacPython, vous pouvez
  simplement supprimer ces trois choses. Un lien symbolique vers
  l'exécutable Python est placé dans "/usr/local/bin/".

Le **build** Python fourni par Apple est installé dans
"/System/Library/Frameworks/Python.framework" et "/usr/bin/python".
Vous ne devriez jamais les modifier ou supprimer, car ils sont
contrôlés et utilisés par Apple (ou d'autres logiciels). Rappelez vous
que si vous choisissez d'installer un Python plus récent depuis
python.org, vous aurez deux installations de Python différentes et
fonctionnelles sur votre ordinateur, il est donc important que vos
chemins et utilisations soit cohérentes avec ce que vous voulez faire.

**IDLE** inclut un menu d'aide qui vous permet d’accéder à la
documentation Python. Si vous êtes entièrement novice, vous devriez
commencer par lire le tutoriel d'introduction dans ce document.

Si vous êtes familier avec Python sur d'autres plateformes Unix, vous
devriez lire la section sur comment exécuter des scripts Python depuis
un shell Unix.


4.1.1. Comment exécuter un script Python
----------------------------------------

Le meilleur moyen de démarrer avec Python sur Max OS X est d'utiliser
l'environnement de développement intégré **IDLE**, voir la section
L'IDE et utilisez le menu d'aide (**Help**) quand l'"IDE" est lancé.

If you want to run Python scripts from the Terminal window command
line or from the Finder you first need an editor to create your
script. Mac OS X comes with a number of standard Unix command line
editors, **vim** and **emacs** among them. If you want a more Mac-like
editor, **BBEdit** or **TextWrangler** from Bare Bones Software (see
http://www.barebones.com/products/bbedit/index.html) are good choices,
as is **TextMate** (see https://macromates.com/). Other editors
include **Gvim** (http://macvim.org) and **Aquamacs**
(http://aquamacs.org/).

Pour exécuter votre script depuis la fenêtre Terminal, vous devez vous
assurer que "/usr/local/bin" est dans le chemin de recherche de votre
shell (**PATH**).

Pour exécuter votre script depuis le Finder vous avez deux options :

* Glissez-le vers **PythonLauncher**

* Sélectionnez **PythonLauncher** en tant qu'application par défaut
  pour ouvrir votre script (ou n'importe quel script ".py") depuis la
  fenêtre **info** de votre Finder puis double-cliquez votre script.
  **PythonLauncher** a des préférences variées pour contrôler comment
  votre script est exécuté. Glisser des options permets de les changer
  pour une invocation, ou utilisez le menu Préférences pour changer
  les choses globalement.


4.1.2. Lancer des scripts avec une interface graphique
------------------------------------------------------

Avec les anciennes versions de Python, il y a une bizarrerie Max OS X
dont vous devez être au courant : les programmes qui communiquent avec
le gestionnaires de fenêtre **Aqua** (en d'autres termes, tout ce qui
a une interface graphique) doivent être exécutés de façon spécifique.
Utilisez **pythonw** au lieu de **python** pour exécuter ce genre de
scripts.

Avec Python 3.6, vous pouvez utilisez **python** ou **pythonw**.


4.1.3. Configuration
--------------------

Python sur OS X respecte tous les standards Unix pour les variables
d'environnement comme "PYTHONPATH", mais définir ces variables pour
des programmes exécutés depuis le Finder n'est pas standard car le
Finder ne lit pas votre ".profile" ou ".cshrc" au démarrage. Vous
devez créer un fichier "~/.MacOSX/environment.plist". Voir le document
technique d'Apple QA1067 pour plus de détails.

Pour plus d'informations sur l'installation de paquets Python dans
**MacPython**, voir la section Installation de paquets Python
additionnels.


4.2. L'*IDE*
============

MacPython ships with the standard IDLE development environment. A good
introduction to using IDLE can be found at
https://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html.


4.3. Installation de paquets Python additionnels
================================================

Il y a plusieurs méthodes pour installer des paquets Python
supplémentaires :

* Les paquets peuvent être installés en utilisant **distutils**
  ("python setup.py install").

* Beaucoup de paquets peuvent aussi être installés via l'extension
  **setuptools** ou **pip**, voir https://pip.pypa.io/.


4.4. Programmation d'interface graphique sur le Mac
===================================================

Il y a plusieurs options pour construire des applications avec
interface graphique sur le Mac avec Python.

*PyObjC* est un **binding** Python vers le **framework**
Objective-C/Cocoa d'Apple, qui est la base de la plupart des
développements modernes sur Mac. Des informations sur PyObjC sont
disponible à https://pythonhosted.org/pyobjc/.

La boîte à outils standard de Python pour des interfaces graphique est
"tkinter", basé sur la boite a outils multi-plateformes **Tk**
(https://www.tcl.tk). Une version native **Aqua** de **Tk** est
empaquetée avec OS X par Apple, et la dernière version peut être
téléchargée et installée depuis https://www.activestate.com ; elle
peut aussi être construite depuis les sources.

*wxPython* is another popular cross-platform GUI toolkit that runs
natively on Mac OS X. Packages and documentation are available from
http://www.wxpython.org.

*PyQt* est une boîte à outils multi-plateformes pour interfaces
graphique populaire qui tourne nativement sur Mac OS X. Plus
d'informations disponible sur
https://riverbankcomputing.com/software/pyqt/intro.


4.5. Distribuer des Applications Python sur le Mac
==================================================

L'outil "Build Applet" qui est placé dans le dossier MacPython 3.6 est
suffisant pour empaqueter des petits scripts Python sur votre propre
machine et pour les exécuter en tant qu'application Mac standard.
Cependant, cet outil n'est pas assez robuste pour distribuer des
applications Python à d'autres utilisateurs.

L'outil standard pour déployer des applications Python sur le Mac est
**py2app**. Plus d'information sur l'installation et l'utilisation de
**py2app** sur http://undefined.org/python/#py2app.


4.6. Autres ressources
======================

La liste de diffusion courriel **MacPython** est une excellente
ressource support pour les utilisateurs et développeurs Python sur Mac
:

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

Une autre ressource utile est le wiki **MacPython** :

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