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

Py2exe Python Discussion :

Icone sous Py2exe


Sujet :

Py2exe Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut Icone sous Py2exe
    Bonjour bonjour,

    Voila on peut dire que tout est dit dans le titre mais je vais en rajouter un ch'ti peu.
    Donc j'ai développé un programme en python utilisant la bibliothèque tix toussa toussa.... et pis maintenant j'aimerais le compiler en y ajoutant un petit icone pour le personnaliser avant de le deployer sur d'autres machines !
    J'ai donc écrit mon fichier setup.py mais quoi que je fasse soit ç aplante a cause de la ligne pour l'icone, soit l'icone n'est pas pris en compte et j'ai encore la fenetre blanche toute moche comme icone...
    Je vous met mon setup.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    import sys
    import os
    import glob
    import os.path 
     
    from distutils.core import setup 
    import py2exe
     
     
    def listdirectory(path):
        return filter(os.path.isfile, glob.glob(path + os.sep + '*'))
     
     
    data_files=[
              ('Dlls', glob.glob(sys.prefix+'/DLLs/tix84.dll')),
              ('tcl/tix8.4', listdirectory(sys.prefix+'/tcl/tix8.4')),
              ('tcl/tix8.4/bitmaps', listdirectory(sys.prefix+'/tcl/tix8.4/bitmaps')),
              ('tcl/tix8.4/pref', listdirectory(sys.prefix+'/tcl/tix8.4/pref')),
               ]
     
    setup(
        script_args = ['py2exe'],
        data_files = data_files,
        windows = [{"script":"AtelierMCO.py", "icon_resources": [(0x0004, "D:\Documents and Settings\olivetr\Desktop\outils.ico")]}],
                   data_files=[("",["D:\Documents and Settings\olivetr\Desktop\outils.ico"])],
        )
    J'ai tout essayé.... Ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    setup(
        script_args = ['py2exe'],
        data_files = data_files,
        windows = [{"script":"AtelierMCO.py", "icon_resources": [(0x0004, "D:\Documents and Settings\olivetr\Desktop\outils.ico")]}],
        )
    Ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    setup(
        script_args = ['py2exe'],
        data_files = data_files,
        windows = [{"script":"AtelierMCO.py", "icon_resources": [(0x0004, "outils.ico")]}],
                   data_files=[("",["D:\Documents and Settings\olivetr\Desktop\outils.ico"])],
        )
    Ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    setup(
        script_args = ['py2exe'],
        data_files = data_files,
        windows = [{"script":"AtelierMCO.py", "icon_resources": [(1, "D:\Documents and Settings\olivetr\Desktop\outils.ico")]}],
                   data_files=[("",["D:\Documents and Settings\olivetr\Desktop\outils.ico"])],
        )
    Mais rien n'y fait...
    Si vous avez une suggestion je suis preneur !

    Merci d'avance !

    TeqPAF

    Edit : J'utilise python2.5 et py2exe0.6.6 for py2.5

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 58
    Points : 36
    Points
    36
    Par défaut
    Exemple de script qui applique une icône au .exe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #!/usr/bin/python
     
    from distutils.core import setup
    import py2exe
     
    ico_file = 'D:\\Mes documents\\icones\\pythonmat.ico'
     
    setup(
        console=[
            dict(
                script = 'prog.py',
                icon_resources = [(1, ico_file)]
                )
        ],
        data_files = ['init.py']
     
    )

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Merci.

    Malheureusement, comme tu as du t'en appercevoir, j'ai déjà essayé pas mal de cas mais en vain... Et celui la en faisait partie.
    Dans ce cas la pourtant la génération de l'exe ne plante pas, aucun message d'erreur mais l'icone de mon exe est toujours cette affreuse fenetre blanche ...

    Est ce que par hasard, l'icone n'aurait pas une taille limite? Moi il est en 48x48...
    J'essaye tou au point ou j'en suis...

    Merci en tout cas.

    TeqPAF

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 396
    Points
    396
    Par défaut
    Ceci marche :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from distutils.core import setup
    import py2exe
     
    setup(
        zipfile = None,
        windows =[{"script": "MonProg.py", "icon_resources": [(0, "MonIcon.ico")]}],
        options ={"py2exe": {"packages": ["Une_lib_ouautre"]}},
        data_files =[("",["MonIcon.ico","Monfic.cfg","untruc.machin","MonProg.exe.manifest"])]

    Dans ce cas, il faut mettre ton icon avec tes sources

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 58
    Points : 36
    Points
    36
    Par défaut
    Mon icône est 128*128.

    Tu en trouves ici :

    http://frenetikfred.deviantart.com/a...-pack-38585746

    http://www.crystalxp.net/galerie/fr....ones-a-png.htm

    résolution différente, mais ça marche aussi.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Tout d'abord je tiens a remercier ceux qui ont participé a cette discussion (chose que je n'avais pas faite avant -- HONTE A MOI )

    Le sujet date mais j'ai maintenant besoin de le générer mon .exe (quelques modifs apportés entre temps)...
    J'ai bien pris en compte toutes vos remarques.
    Voilà mon script setup.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import sys
    import os
    import glob
    import os.path 
     
    from distutils.core import setup 
    import py2exe
     
     
    def listdirectory(path):
        return filter(os.path.isfile, glob.glob(path + os.sep + '*'))
     
     
    Mydata_files=[
              ('Dlls', glob.glob(sys.prefix+'/DLLs/tix84.dll')),
              ('tcl/tix8.4', listdirectory(sys.prefix+'/tcl/tix8.4')),
              ('tcl/tix8.4/bitmaps', listdirectory(sys.prefix+'/tcl/tix8.4/bitmaps')),
              ('tcl/tix8.4/pref', listdirectory(sys.prefix+'/tcl/tix8.4/pref')),
              ('', ["outils.ico"]),
               ]
    setup(
        script_args = ['py2exe'],
        windows = [{"script":"AtelierMCO.py", "icon_resources":[(1,"outils.ico")]}],
        data_files = Mydata_files
        )
    J'ai bien définit tout ce qui était demandé à savoir :
    dans mes data files
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "icon_resources":[(1,"outils.ico")]
    dans setup/windows
    Lors du lancement du script j'ai bien outils.ico dans le dossier ou se trouvent mes sources.

    Lors de l'exécution du script, il n'y a aucune erreur. L'icone est copié dans le dossier dist tout se passe "a merveille" et lorsque j'ouvre ce fameux dossier dist...... bah mon icone n'est pas affecté à l'exécutable (toujours cette fenêtre blanche toute moche...).

    Des suggestions, avis, conseils sur le sujet sont les bienvenue !

    En attendant de vous lire, bonne journée !

    TeqPAF

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Je ne sais pas si ça peut t'aider mais j'ai créé un programme en python 2.6 puis une interface graphique avec pyqt4.5.1. J'ai créé un exécutable de tout ça sous windows xp avec py2exe en y incluant un icône.

    Cependant je n'ai à aucun moment fait de setup.py puisque j'ai utilisé gui2exe (http://code.google.com/p/gui2exe/). C'est un programme avec interface graphique qui permet de choisir après les avoir installé les différents programmes à utiliser pour passer d'un .py à un .exe.

    Donc ensuite si tu as installé py2exe tu utilises py2exe ... et tu remplis correctement les champs, il y a un champ icône. J'ai placé pour ma part mon .ico dans la bonne section et après tout a marché correctement.

    J'espère que cela pourra t'aider même si je ne réponds pas tout à fait au problème, j'offre simplement un nouvel angle d'attaque

  8. #8
    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
    Bonjour,

    Moi aussi je me suis "cogné" un moment contre les icônes avec py2exe, et voilà la solution que j'utilise avec ma calculatrice:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    from distutils.core import setup
    import py2exe 
     
    setup(
        name="Calculext",
        version="1.40",
        description="Une calculatrice scientifique extensible",
        author="Tyrtamos",
        license="license GPL v3.0",
        url="http://python.jpvweb.com",
        zipfile=None,
        windows = [{
                "script": "calculext.py",
                "icon_resources": [(0, "icone.ico")]
                  }],
        data_files=[("",["icone.ico","calculext.html"])]
    )
    Avec ce setup (testé sous python 2.5 et 2.6), l'icône apparait bien, quand le programme est lancé, en haut de la fenêtre ainsi que dans la barre des tâches.

    Tyrtamos

    Edit: des explications complémentaires sur mon code ici: http://python.jpvweb.com/mesrecettes...windows_py2exe
    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

Discussions similaires

  1. Comment inserer une icone sous netbeans
    Par Almira dans le forum NetBeans
    Réponses: 1
    Dernier message: 16/06/2015, 16h39
  2. affichage icon sous seven
    Par TERRIBLE dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 24/01/2011, 21h12
  3. Bug d'un Tray icon sous ubuntu
    Par Seb33300 dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 18/02/2010, 21h10
  4. Comment changer d'icone sous GMF
    Par SGGK96 dans le forum Graphisme
    Réponses: 1
    Dernier message: 18/07/2007, 15h43
  5. [VB] icone sous vb
    Par monsar01 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/05/2006, 12h58

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