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

PyQt Python Discussion :

Portabilité du code


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut Portabilité du code
    Bonjour à tous !

    J'écris actuellement un programme en Python / Qt avec PySide.
    L'avantage du python, c'est d'être très portable. En standard !
    Mais si on utilise Qt, comment ça se passe pour l’exécution sur d'autres plateformes (windows / linux principalement) que la plateforme de développement?

    Merci pour vos éclaircissements !
    Poukill

  2. #2
    Membre expérimenté Avatar de ashren
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 101
    Par défaut
    Bonsoir,

    si tu utilises uniquement des classes et méthodes de Python et de PySide, il ne devrait pas y avoir de problème (le cas échéant, la documentation Qt devrait le stipuler).

    Après, si tu t'amuses à rajouter du code en faisant des appels ctypes (genre dwmapi sous Windows 7) n'oublie pas d'englober ces parties de code avec un 'if' en fonction de la plateforme (module platform pour savoir l'OS).

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    C'est facile d'écrire du code qui s'exécute sans modification entre Windows et Linux, y compris avec PyQt/Pyside. Il suffit de ne pas utiliser de module spécifique aux OS, ou de les utiliser en testant l'OS avant (il sys.platform=='win32' ... elif sys.platform=='linux2'...). Il y a en particulier le domaine de la "gestion des droits", très spécifique, qui pourra être traité en testant la plateforme.

    On peut aussi prendre quelques précautions avec certains codes. Par exemple, la séparation entre un répertoire et un nom de fichier se fait mieux avec os.path.split(chemin), et c'est Python qui se débrouille dans ce cas avec les séparateurs propres à chaque OS ('\', '/', ':').

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ok d'accord. Mais le système cible devra avoir Qt + Pyside, c'est bien ça ?
    Cas pratique : je développe sous windows. J'ai installé Qt4.8.2 +PySide (compilée avec Qt4.8.2). Mon programme fonctionne correctement.
    Pour le déploiement, que faut-il que je fournisse si l'utilisateur utilise un autre plateforme (Linux par exemple) ? Il faudra qu'il installe Qt + PySide c'est bien ça ?

  5. #5
    Membre expérimenté Avatar de ashren
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 101
    Par défaut
    Sous Linux oui, sous Windows et OSX il y a des utilitaires pour faire des .exe et des .app encapsulant tout ce dont le programme a besoin (py2exe, py2app et cxfreeze par exemple).

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par défaut
    Oui, bien sûr! Pour que le même code Python s'exécute sans modification sur Windows et Linux, il faut bien que l'interpréteur et les bibliothèques fasse le lien avec les spécificités de l'OS: ce ne sont donc pas les mêmes; et il faut qu'ils soient installés.

    En ce qui concerne les principales distributions Linux, Python 2.6 ou 2.7 est déjà pré-installé, et les "paquets" (rpm, deb) de PyQt4 ou Pyside sont disponibles: il n'y a plus qu'à installer. Tu devrais trouver des infos d'installation sur ce site.

    Si tu dois distribuer ton programme pour Linux, tu devrais essayer! D'abord pour vérifier qu'il fonctionne, mais aussi pour pouvoir donner des instructions précises d'installation. De nos jours, c'est facile: avec Virtualbox (par exemple), on peut installer les principaux Linux (debian/ubuntu/mint, opensuse, fedora/centos, ...) en virtuel sur Windows.

  7. #7
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    ok du coup l'utilisation de Python n'est pas forcément géniale dans mon cas.
    J'ai plus l'habitude du C++. Or l'inconvénient du C++ c'est qu'il faut compiler soi-même pour toutes les plateformes(et toutes les bibliothèques qu'on utilise). L'avantage, c'est que l'utilisateur a juste a lancer le programme, et puis c'est tout (les bibliothèques sont en général fourni avec l’exécutable) !
    En python, c'est l'inverse. Moi je suis tranquille, je développe avec mes libs sur ma plateforme. Par contre, c'est l'utilisateur qui va devoir se taper l'installation de toutes les bibliothèques !
    Pas glop quand même...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Portabilité du code C++ de Windows -> Linux ?
    Par eraser570 dans le forum Linux
    Réponses: 29
    Dernier message: 04/09/2009, 17h02
  2. portabilité du code avec pygame
    Par stefff285 dans le forum Programmation multimédia/Jeux
    Réponses: 0
    Dernier message: 05/04/2009, 19h33
  3. Besoin de conseil sur la portabilite de code et IDE
    Par _solo dans le forum Débuter
    Réponses: 12
    Dernier message: 23/09/2008, 16h32
  4. portabilité du code VBS sous windows 2000
    Par hervebaron dans le forum VBScript
    Réponses: 20
    Dernier message: 06/06/2008, 10h33
  5. Portabilité de code Delphi
    Par ludovic tambour dans le forum EDI
    Réponses: 2
    Dernier message: 20/08/2005, 16h14

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