Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    mars 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mars 2008
    Messages : 137
    Points : 163
    Points
    163

    Par défaut Python sur Mac OS X: le point de la situation

    Suite à des réponses données à une question sur le Forum, je me suis rendu compte que beaucoup ne connaissent pas bien ou se font des fausses idées de Python sur Mac OS X.
    Je passerai sous silence les habituels commentaires du genre Mac, c'est nul, je préfère Linux ou Windows, je déteste et autres joyeusetés pour me limiter à l'essentiel,de manière constructive:

    J'ai un Mac et je veux travailler avec Python, comment puis-je faire ? Et je me fous que ce soit meilleur sur Linux ou Windows puisque je ne les utilise pas.
    Un petit synthèse s'impose puisqu'il n'y en a pas sur le Forum. Je précise que je ne suis pas un développeur mais un scientifique qui utilise Python dans un environnement Mac OS X. Il n'y a rien de neuf ici car on peut tout trouver sur Internet quand on veut s'en donner la peine (les développeurs et les utilisateurs anglophones ou hispanophones de Python sur Mac sont de plus en plus nombreux). Je constate aussi que de plus en plus de modules scientifiques sont développés sur Mac OS X.
    Une première chose fondamentale est pourtant:
    Hormis si on le désire, il n'y a pas besoin d'installer Python sur Mac OS X puisqu'il est déjà présent
    .
    Le problème va néanmoins se poser si je désire installer une autre version, d'où cette petite présentation.

    1) Rappels

    Rappelons tout d'abord que Mac OS X, sous son interface « grand public », est un système Unix, tout comme Linux, mais basé sur un Unix BSD. En conséquence, il y a beaucoup de fichiers/dossiers Unix dans le système, mais ceux-ci sont masqués par défaut dans l'interface (Finder), par sécurité selon Apple. Si l'on ne fait rien, des dossiers comme usr ne seront jamais visibles. Pourtant, sous Unix, l’installation des librairies tierces se fait généralement dans les dossiers comme /usr et /usr/local. Il est donc important d'avoir accès à ces dossiers ou de les rendre visibles. Pour cela, il y a plusieurs solutions:

    2) Python, 64 bits et 32 bits

    Comme c'est un Unix, plusieurs versions de Python sont préinstallées. Pour s'en rendre compte il suffit d'ouvrir le Terminal (dans /Utilitaires/) et de taper Python. Elles sont en 64 bits mais il y a moyen de le faire tourner en 32 bits si l'envie vous en prend, de même qu'il est possible de choisir la version que l'on désire utiliser, voir https://developer.apple.com/library/.../python.1.html pour montrer qu'il y a bien de la documentation sur le site d'Apple quand on cherche...

    3) Vous n'êtes pas satisfaits des versions proposées et vous voudriez en installer une autre ?

    Plusieurs solutions s'offrent alors à vous:

    a) la manière préconisée par Apple: les Frameworks
    La plus simple est de télécharger une des versions officielles de Python.org et de l'installer Ces versions sont livrées sous forme de Frameworks mais, c'est quoi un Framework ?
    Pour faciliter le développement sous Mac OS X, ses concepteurs ont introduit la notion de Frameworks. Un Framework est un dossier contenant du code, des headers, de la documentation et d’éventuelles ressources supplémentaires. Il est ainsi possible d’installer des librairies dynamiques en ne manipulant qu’un seul objet, le Framework. Ils permettent de gérer plusieurs versions d'une librairie (mises à jour,etc.) avec des liens symboliques.
    Les emplacements de ces Frameworks sont les dossiers Bibliothèque/Library (même si vous voyez Bibliothèque dans le Finder, ce sera Library dans le Terminal). Il y en a au moins trois:
    - /Système/Bibliothèque/, réservé à Mac OS X et auquel il ne faut pas toucher;
    - /Bibliothèque/, utilisable par les administrateurs et dont le contenu est destiné à être partagé par tous les utilisateurs;
    - un dossier ̃/Bibliothèque/ par utilisateur qui peut y mettre ce qu'il veut.
    La plupart des distributions de logiciels ou de librairies libres utilisent de plus en plus le système de Frameworks pour s'installer sur Mac OS X. Citons, entre autres, QT, GTK+, R, le Python de Python.org

    Il est aussi utiliser ce qu'il y a dans un Framework comme dépendances pour compiler d'autres librairies ou applications(tout comme s'il était dans /usr/local/...).

    b) les gestionnaires de paquets

    Vous pouvez utiliser un Gestionnaires de paquets comme Synaptic sur Ubuntu, ou autres.
    Vous leur indiquez ce que vous voulez installer et ils s'occupent de tout (installation des dépendances préalables, configuration et compilation). Au final, vous obtiendrez des exécutables semblables à ceux obtenus dans la première solution, mais dans d'autres dossiers. Ceux-ci sont:



    Il faut alors rajouter dans le PATH, /sw/bin, /sw/lib, /sw/include ou la même chose pour /opt
    - Le principal problème de Fink et de MacPorts, c'est que ce sont des usines à gaz: ils ne tiennent pas compte de ce qui est préalablement installé, installent tout dans leurs dossiers respectifs ce qui peut créer de réels problèmes dans la gestion des PATHs.
    - Homebrew est plus « propre » (dans /usr/) et se base sur les librairies existantes, si elles sont à jour

    c) Compiler les sources

    Si le cœur vous en dit, vous pouvez compiler les sources. Pour cela, il vaut mieux installer les « Developper tools » disponible gratuitement. Ils offrent un IDE, XTools et une multitude d'éléments supplémentaires. En pratique, c'est long mais relativement facile. Il est possible de le faire sous une forme classique (résultats dans le dossier /usr/) ou sous forme de Framework.

    4) Les modules

    a) avec une installation classique
    • Avec les versions de Python préinstallées ou la version officielle (Framework), cela se fait classiquement avec Pip, easy_install ou python setup.py install. Il existe de plus en plus des distributions propres à Mac OS X comme numpy, scipy, PyQt4, PySide, etc., ce qui fait qu'il n'y a pas besoin de les compiler soi même. Le seul qui posait problème était WxPython avec la version 64 bits de Python;
    • Hormis rares exceptions, je n'ai jamais eu le moindre problème pour installer simplement un module, même les plus complexes comme ceux qui utilisent Fortran;
    • si l'on veut une distribution scientifique de Python, il suffit d'installer la version OpenSource de Enthouht (EPD avec tous les modules nécessaires) en 32 ou 64 bits (aussi sous forme de Framework)
    • il y a, bien entendu, des modules spécifiques à Mac OS X comme le module py2app qui permet de créer des applications (comme Pyexe sur Windows ou cxfreeze). Et donc ceux qui voudraient utiliser cxfreeze sur Mac OS X en seront pour leur frais et ils pourront dire qu'il n'y a rien sur Mac. Le problème est simplement que les utilisateurs Mac n'en ont pas besoin...


    b) avec les gestionnaires de paquets,

    Vous pouvez aussi le faire avec, par exemple:
    Code :
    port install py27-matplotlib py27-numpy py27-scipy py27-ipython
    Ce qui est beaucoup moins « pythonesque » à mon avis.

    5) Désinstallation d'une version de Python

    Comment désinstaller quelque chose sur Mac ? Ça a l'air éminemment complexe pour certains et pourtant...
    Il suffit de mettre l'objet dans la corbeille

    • Si on a suivi les directives d'Apple (Frameworks etc., d'où leur intérêt) et si je veux supprimer l'entièreté d'une version de Python, je déplace le dossier Python 2.x dans la corbeille, et c'est tout. Il y aura peut être des chemins à supprimer dans votre fichier .bash_profile et peut être des liens symboliques dans /usr/bin/.
    • Si je veux supprimer une version de Python installées par un gestionnaire de paquet, il offre généralement les moyens de le faire.
    • le problème se posera éventuellement si l'on a choisi de le compiler soi-même sous une forme classique (multiples fichiers dans le dossier /usr/).

    Compliqué, n'est ce pas ?
    Attention, la seule chose à ne pas faire est de supprimer une des versions préinstallées.

    6) Désinstallation ou mise à jour d'un module
    • si vous avez choisi de le faire de la manière préconisée avec pip ou easy_install, c'est la même chose qu'avec Linux ou Windows
    • si elles ont été installées par un gestionnaire de paquets, c'est le problème du gestionnaire, pas d'Apple


    7) Conclusions
    Et voila, j'espère avoir été clair.
    Pour ma part, j'utilise exclusivement les versions préinstallées et les versions officielles de Python.org (Frameworks) qui respectent les principes préconisés par Apple. C'est beaucoup plus facile par la suite.
    Lorsque quelque chose ne figure pas dans ces possibilités, je tente de les compiler par moi-même ou j'utilise Homebrew, beaucoup plus rapide et respectant mieux les caractéristiques de Mac OS X, et non Fink ou MacPorts, beaucoup plus lourds. Je ne comprends toujours pas bien pourquoi certains s'obstinent à utiliser ces deux derniers systèmes lorsqu'il existe une solution native.
    Et ne faites surtout pas comme certains débutants qui installent tout n'importe comment et se retrouvent « Gros-Jean comme devant » : Python + Leopard + Fink + Mac Ports + Python.org + Idiot = broken Python - fresh start?

    Bien entendu Python sur Mac OS X a de vrais défauts spécifiques, tout comme les versions pour Windows ou Linux et il serait peut être intéressant de les aborder réellement.

    Et bien entendu aussi, les utilisateurs de Mac OS X sont souvent les grands oubliés, surtout dans le monde francophone: Linux pour les développeurs et Windows pour les utilisateurs, Mac OS X c'est beau et pas sérieux. Quand je vois dans le monde scientifique le nombre de plus en plus grand de personnes qui utilisent les macs, je me pose des questions.

  2. #2
    Expert Confirmé
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    2 185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 2 185
    Points : 3 594
    Points
    3 594

    Par défaut

    Bravo! C'est très clair! Et ça manquait vraiment.
    Ne rien ranger permet d'observer la loi universelle d'entropie: l'inévitable convergence vers le chaos...
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre Expert

    Inscrit en
    décembre 2006
    Messages
    2 252
    Détails du profil
    Informations forums :
    Inscription : décembre 2006
    Messages : 2 252
    Points : 1 280
    Points
    1 280

    Par défaut

    Pas le temps de lire en détails, mais la distribution enthought a-t-elle été proposée ? La version FREE n'est pas trop mal pour commencer avec notament un support simple de PIL.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    mars 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mars 2008
    Messages : 137
    Points : 163
    Points
    163

    Par défaut

    Pas le temps de lire en détails, mais la distribution enthought a-t-elle été proposée ?
    Merci pour la politesse mais c'est vraiment dommage pour vous car vous auriez aussi évité de perdre votre temps avec une réponse inutile. Il suffisait de le lire:
    - si l'on veut une distribution scientifique de Python, il suffit d'installer la version OpenSource de Enthought (EPD avec tous les modules nécessaires) en 32 ou 64 bits (aussi sous forme de Framework)
    Je suis un scientifique, c'est aussi écrit.

    Et il y a bien d'autres solutions simples pour installer la PIL qui ne pose aucun problème, ce qui n'est pas le cas de modules comme Mayavi2, d'où l'intérêt de la distribution Enthought et le pourquoi de la citation.

  5. #5
    Invité régulier
    Inscrit en
    septembre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 20
    Points : 7
    Points
    7

    Par défaut Python ne trouve pas gammu

    Bonjour.

    J'ai une petite question par rapport au module gammu avec Python.
    J'ai installé IDLE et Python Launcher parce que j'ai lu je ne sais plus où que c'était une bonne idée...
    J'ai installé gammu via le Terminal avec la commande brew install gammu.

    Mais quand je tente un import gammu dans un script Python, il me répond "No modul nammed gammu".
    Pourtant gammu a l'air d'être bien installé puisque je peux l'appeler depuis le Terminal.

    C'est quoi le problème ???
    Merci d'avance
    Cordialement

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    mars 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mars 2008
    Messages : 137
    Points : 163
    Points
    163

    Par défaut

    si vous avez installé Gammu avec Homebrew, le module python de gammu a été installé pour la version Python de Homebrew ( et pas pour les autres versions). Je ne pense pas que c'est celle-là que vous utilisez.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •