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 :

Programmes PyQt4 autonomes grâce à cx_freeze [Tutoriel]


Sujet :

PyQt Python

  1. #1
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 480
    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 480
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut Programmes PyQt4 autonomes grâce à cx_freeze
    Bonjour,

    Comme j'en avais le besoin, j'ai réalisé 2 tutoriels python. Il s'agit de construire des programmes PyQt4 accompagnés de l'interpréteur Python et de toutes les bibliothèques nécessaires (dont PyQt4), afin qu'ils puissent fonctionner sur des PC sans aucune installation ni de Python ni de PyQt4:

    - Sous Windows (XP, Vista, 7)

    - Sous Linux (Ubuntu 10.10)

    Je pense que ce type de tuto devra pouvoir être complété au gré de nos expériences. Par exemple, j'ai traité l'utilisation de QtSql (accès aux bases de données SQL), mais pas de phonon (multimedia). Et ce serait bien que quelqu'un puisse essayer pour voir si ça marche aussi sous Mac_OSX, ainsi qu'avec Python 3.x.

    Pour la version Windows, j'ai pu constater que le programme d'installation InnoSetup (http://www.jrsoftware.org/isinfo.php) permettait d'obtenir, sur la base du résultat de cx_freeze, un programme en un seul fichier, installable/désinstallable comme n'importe quel programme Windows: les utilisateurs ne sauront même pas que c'est du Python...

    Pour innosetup, le site developpez a déjà un bon tuto : http://jlelong.developpez.com/tutori...ion-innosetup/.

    Tyrtamos

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 480
    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 480
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Petit ajout au message précédent:

    Tuto supplémentaire (proposé à developpez par MP): il s'agit d'avoir la traduction des QMessageBox (Yes/No => Oui/Non), y compris avec les exécutables "standalone" faits avec cx_freeze (ou équivalents) :

    Garder les traductions avec cx_Freeze

    Pour la version Windows avec cx_freeze, j'ai bien entendu vérifié que ça continuait à marcher avec le programme d'installation innosetup.

    Pour la version interprétée normale ('.py' ou '.pyw'), on peut trouver sur le web la version Qt4 en C à convertir en PyQt4 (c'est ce que j'ai fait), mais pour cx_freeze, c'est introuvable.

    Tyrtamos

  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 751
    Points
    1 751
    Par défaut
    Bonjour,
    merci.

    Des que j'ai du temps libre je testerais sous Mac O$ avec Python 3. Je vais aussi tester cette methode.

    Au plus tard, ce sera en Septembre.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    à tous,

    Question à 100 balles : crois-tu qu'il soit possible de créer un exécutable windows (donc un .exe) en étant sous linux... ça parait un peu fou, mais ça m'éviterai bien de devoir installer un PyQt sur un PC windows et de faire la manip avec cx_freeze.

    @+

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 480
    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 480
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Bonjour Jiyuu,

    A ma connaissance, c'est non: cx_freeze fait un assemblage organisé de bibliothèques Python, PyQt4, etc... qui sont différentes, y compris dans leur format (.dll, .so).

    Je ne vois donc pas comment ça pourrait être possible, mais certains y arrivent peut-être? En tout cas, tu n'es pas le seul à poser la question: il suffit de demander "cx_freeze cross" à google pour le voir...

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/10/2007, 20h51
  2. [VB6] programme autonome ???
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 28/04/2006, 22h43
  3. Programme autonome pour mac os X
    Par metos256 dans le forum Général Python
    Réponses: 3
    Dernier message: 21/10/2004, 14h43

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