Table des matières

Utiliser Python 3 avec Mac OS

Cette documentation est ancienne et n'est plus à jour…

Mise à jour 2014

Bien que je n'ai pas eu le loisir de la tester, le distribution [[http://pyzo.org|Pyzo]] est disponible pout OsX. Elle contient Python 3, de nombreux modules scientifiques, PySide, et un IDE très pratique (IEP). C'est la solution conseillé pour utiliser Python 3 sous OsX.

Je laisse toutefois les informations ci-dessous, a priori, obsolètes.

Python 3 et MacOS avant 2014

Commencez par télécharger la version 3 de Python. Vous la trouverez sur le site officiel [[http://www.python.org]] (à vous de choisir la bonne version) ou ici [[files>PYTHON/2011_2012/MAC]] (version testé en 2011-2012, choisissez la version qui correspond à votre version de Mac OS (voir fichier README))

Installez Python

Uns fois Python installé, vous le trouverez dans le dossier Applications

L'environnement de développement fourni avec Python est IDLE. Il suffit amplement à nos besoins :

Lors de l'ouverture d'IDLE, vous obtenez juste un Shell. Vérifiez qu'il s'agit bien de Python 3 (la version de l'interpréteur est indiquée en haut de la fenêtre1)).

Vous pouvez maintenant ouvrir un éditeur, pour entrer les programmes, via le menu File/New Window :

Pour vérifier que tout fonctionne correctement, vous pouvez tester le programme suivant :

import math
print('Bonjour....')
for i in range(4,129,4) :
    print(i,math.log(i,2))

Exemple d'utilisation avec Pysite

Voici un exemple de session de travail avec la site d'exercices Pysite. Sont ouverts :

  1. une fenêtre shell
  2. une fenêtre contenant la résolution de l'exercice
  3. à l'arrière plan, le navigateur Web contenant l'énoncé.

Pour exécuter le programme entré dans l'éditeur Idle, il suffit d'utiliser le menu Run/ Run Module (raccourci F5). Dans notre exemple, tout s'est bien déroulé, et l'exercice a été résolu (il s'agit de l'exercice de test…)

Installation de Qt/PySide

Pour programmer des interfaces graphiques, nous utilisons PySide. Ce module, ainsi que Qt, sont disponibles pour Mac.

Il faut commencer par choisir les bonnes versions en fonction de l'interpréteur Python et de l'environnement :

À l'heure où ces lignes sont écrites (oct 2012), il n'y a pas de version de Pyside pour Python 3 sous Mac. Partant de ce constat, vérifiez la version de python qui est installée par défaut. Pour cela, ouvrez un terminal, entrez python et utilisez la touche de tabulation pour voir les complétions proposées. Sur la machine de test étaient disponibles python2.5 et python 2.6 (en plus de la version 3.2 ajoutée)

Recherchez sur cette page http:qt-project.org/wiki/PySide_Binaries_MacOSX une versionde PySide qui correspond à votre version de Python. Sur la machine de test, nous avons utilisé pyside-1.1.0-qt47-py26apple.pkg. Il nous faut donc Python 2.6 (OK) et Qt 4.7. Commencez par télécharger QT (http://qt-project.org/downloads) : Sur cette page, vous trouverez : * le SDK QT (nous n'en n'avons pas besoin) * la bibliothèque QT (QT Library) : recherche la version pour Mac qui convient, actuellement (oct 2012) la 4.7.4 * Qt Creator (non testé). La bonne version de la bibliothèque est bien cachée. Son nom est : qt-mac-opensource-4.7.4.dmg (ragardez du côté du lien : autres versions). Une fois Qt installé, puis PySide, vous pouvez tester l'installation. Attention à utiliser la bonne version de Python (2.6 dans notre cas). Essayez par exemple ce programme : <file python testqt.py> import sys from PySide import QtGui app = QtGui.QApplication(sys.argv) label = QtGui.QLabel(“Hello <b>World</b>”) label.show() sys.exit(app.exec_()) </file> ==== Utilisation de Python 2.6 ==== Du fait de l'utilisation de Python 2.6 au lieu de Python 3, certains exemples ne fonctionnenet pas directement. En premier lieu, il sera probablemetn nécessaire de préciser l'encodage du fichier en donnant sur une des 2 premières lignes : <code python> # -*- coding: utf-8 -*- </code> L'utilisation de super() fonctionne différemment sous Python 3 et 2. Il convient de remplacer : <code python> class Fenetre(QtGui.QWidget) : def init(self,parent=None) : super().init(parent) … </code> Par : <code python> class Fenetre(QtGui.QWidget) : def init(self,parent=None) : QtGui.QWidget.init(self,parent) </code> ===== Modules supplémentaires ===== Je n'ai pas testé les modules supplémentaires que vous pourriez être amené à utiliser : * pygame * numpy * scipy * matplotlib Je suis preneur d'un retour d'expérience sur l'utilisation de ces modules avec Python 3 sur Mac.

1)
dans notre cas c'st 3.2.2