IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Python sur Mac OS X: le point de la situation


Sujet :

Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 149
    Points : 219
    Points
    219
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bravo! C'est très clair! Et ça manquait vraiment.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    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
    149
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 149
    Points : 219
    Points
    219
    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
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 20
    Points : 15
    Points
    15
    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
    149
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 149
    Points : 219
    Points
    219
    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.

  7. #7
    Candidat au Club
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Lancement de scripts Python 3 sur Mac
    Bonjour,

    totalement autodidacte avec la "chose" informatique, je débute sur Phyton 3 sur un mac (OS 10.6.8).
    J'ai installé la version 3.4.1 et avec la console, pas de problème, tout fonctionne. Mais lorsque je veux lancer un script (composé avec IDLE ou TextWrangler), le système ouvre Python 2.7 et non pas Python3. Ce qui me pose problème avec les caractères accentués, mais aussi la commande input lorsque je veux par exemple y entrer du texte.
    Bien sûr, je pourrai utiliser raw_input et me contenter de caractères non accentués...
    Mais je préférerais toutefois pouvoir faire en sorte que ce soit Python3 qui se lance avec les extensions .py

    Est-ce que quelqu'un peut m'aider ?
    Par avance, merci.

    Précision : quand, depuis le terminal, je tape la commande [python3 + nomdufichier.py], cela fonctionne aussi...

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Ajoute cette ligne au tout début de tes scripts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #! /usr/bin/python3
    Le chemin est exact sous Linux, vérifie tout de même de ton côté.

  9. #9
    Candidat au Club
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Super simple, merci.
    J'essaie cela dès mon retour à la maison...

    Pendant que j'y pense : super merci pour les Cours et tutoriels Python , mon préférél : Apprendre à programmer avec Python 3 par Gérard Swinnen

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/04/2013, 19h30
  2. python et unicode => erreur sur freebsd (et pas sur mac)
    Par and1hotsauce dans le forum Général Python
    Réponses: 4
    Dernier message: 16/02/2011, 10h46
  3. Réponses: 4
    Dernier message: 12/07/2010, 15h50
  4. Lancer rapidement un script Python sur Mac
    Par rambc dans le forum Général Python
    Réponses: 2
    Dernier message: 29/09/2009, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo