Partage
  • Partager sur Facebook
  • Partager sur Twitter

Crash de la cmd lors de la compilation avec py2exe

Ajout d'icône

    15 février 2017 à 14:12:43

    Bonjour à tous ! J'ai voulu ajouter une icône à mon petit programme. J'ai donc ajouté ceci :
    setup(name="nomDuProgramme", 
          version="1.0", 
          description="Description du programme", 
          author="Vous", 
          windows = [
            {
                "script": "programme.py",
                "icon_resources": [(1, "votreIcone.ico")]
            }
        ],)
    Lorsque je rentre dans la commande : python setup.py py2exe les actions s'effectuent mais au bout d'un moment la console m'indique que python.exe a cessé de fonctionner. J'ai essayé sans ajouter d'icône et ça marche j'imagine que le problème vient donc de cette ajout :/ . Un peu d'aide ne serait pas de refus ! :D Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      15 février 2017 à 15:07:09

      C'est sans doute l'emplacement de ton icône qui n'est pas correct, il faut donner le chemin absolu de celui-ci.
      • Partager sur Facebook
      • Partager sur Twitter
        15 février 2017 à 15:28:35

        oldProgrammer a écrit:

        C'est sans doute l'emplacement de ton icône qui n'est pas correct, il faut donner le chemin absolu de celui-ci.


        Non ça marche pas :/
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          15 février 2017 à 15:36:24

          Ne compte pas sur moi pour t'aider en me répondant "Non ça ne marche pas", il faut exprimer les messages d'erreur, si ça fait la même chose ou pas, ou d'autres détails pouvant mettre la puce à l'oreille. Où se trouve ton fichier 'ico' ? Dans le même répertoire que ton setup.py ?
          • Partager sur Facebook
          • Partager sur Twitter
            15 février 2017 à 15:45:49

            oldProgrammer a écrit:

            Ne compte pas sur moi pour t'aider en me répondant "Non ça ne marche pas", il faut exprimer les messages d'erreur, si ça fait la même chose ou pas, ou d'autres détails pouvant mettre la puce à l'oreille. Où se trouve ton fichier 'ico' ? Dans le même répertoire que ton setup.py ?


            Oui dsl c'est bête x) ! Oui mon fichier ico est dans le même répertoire que mon setup.py effectivement. Sinon l'invite de commande crash à cette étape : copying C:\Python27\lib\site-packages\py2exe\run_w.exe -> C:\Python27\dist\programme.exe

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              15 février 2017 à 16:03:42

              Hmm, on va essayer d'assurer le coup quand même... On va déterminer l'emplacement exact de ton fichier py, récupérer son répertoire et y placer le chemin absolu de ton icône dans ton setup.

              import os # si pas déjà importé
              
              path = os.path.realpath(__file__) # recup du chemin absolu de ton fichier py
              directory = os.path.split(path)[0] # recup du répertoire où se trouve ton fichier py
              path_ico = os.path.join(directory, "votreIcone.ico") # chemin absolu de ton icône.
              
              # ...
              
              setup(name="nomDuProgramme",
                    version="1.0",
                    description="Description du programme",
                    author="Vous",
                    windows = [
                      {
                          "script": "programme.py",
                          "icon_resources": [(1, path_ico)]
                      }
                  ],)


              Si tu as une erreur au départ c'est qu'il y a un problème quand à l'emplacement que tu crois être le bon pour ton icône.

              -
              Edité par Anonyme 15 février 2017 à 16:03:58

              • Partager sur Facebook
              • Partager sur Twitter
                15 février 2017 à 16:19:36

                oldProgrammer a écrit:

                Hmm, on va essayer d'assurer le coup quand même... On va déterminer l'emplacement exact de ton fichier py, récupérer son répertoire et y placer le chemin absolu de ton icône dans ton setup.

                import os # si pas déjà importé
                
                path = os.path.realpath(__file__) # recup du chemin absolu de ton fichier py
                directory = os.path.split(path)[0] # recup du répertoire où se trouve ton fichier py
                path_ico = os.path.join(directory, "votreIcone.ico") # chemin absolu de ton icône.
                
                # ...
                
                setup(name="nomDuProgramme",
                      version="1.0",
                      description="Description du programme",
                      author="Vous",
                      windows = [
                        {
                            "script": "programme.py",
                            "icon_resources": [(1, path_ico)]
                        }
                    ],)


                Si tu as une erreur au départ c'est qu'il y a un problème quand à l'emplacement que tu crois être le bon pour ton icône.

                -
                Edité par oldProgrammer il y a 15 minutes

                J'ai : 

                C:\Python27>python setup.py py2exe
                  File "setup.py", line 1
                SyntaxError: Non-ASCII character '\xe9' in file setup.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
                
                C:\Python27>

                Techniquement le chemin d'acces de mon icone est C:\Python27\icone.ico



                -
                Edité par Tøm 15 février 2017 à 16:23:30

                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  15 février 2017 à 16:23:25

                  Dans tout fichier python en version 2.x, tu dois placer l'encodage au début du fichier.

                  C'est en 1ère ligne

                  # -*- coding: latin-1 -*-



                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 février 2017 à 16:34:24

                    oldProgrammer a écrit:

                    Dans tout fichier python en version 2.x, tu dois placer l'encodage au début du fichier.

                    C'est en 1ère ligne

                    # -*- coding: latin-1 -*-

                    Bon la je comprend pas je pensais que le nom était facultatif ici : 

                    C:\Python27>python setup.py py2exe
                    Traceback (most recent call last):
                      File "setup.py", line 11, in <module>
                        setup(name="programme",
                    NameError: name 'setup' is not defined
                    
                    C:\Python27>




                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      15 février 2017 à 16:36:29

                      Attend ! Dans ton 1er topic, ce n'est pas le contenu entier de ton setup.py, j'espère... ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 février 2017 à 16:42:48

                        oldProgrammer a écrit:

                        Attend ! Dans ton 1er topic, ce n'est pas le contenu entier de ton setup.py, j'espère... ?


                        Effectivement j'avais oublié de remettre 
                        from distutils.core import setup
                        import py2exe
                        
                        setup(windows=["programme.py"]) 
                        Maintenant j'ai 
                        running py2exe
                        error: Resource filename 'C:\Phyton\icone.ico' does not exist
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          15 février 2017 à 16:45:34

                          c'est icone ou votreIcone ? Et pourquoi Phyton et pas Python, il semble réellement probable que se soit un problème lié au chemin de ton icône.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 février 2017 à 16:57:58

                            Voici mon setup.py 
                            # -*- coding: latin-1 -*-
                            
                            from distutils.core import setup
                            import py2exe
                            
                            setup(windows=["programme.py"]) 
                            
                            import os 
                             
                            path = os.path.realpath(__file__) 
                            directory = os.path.split(path)[0] 
                            path_ico = os.path.join(directory, "C:\Python27\icone.ico") 
                             
                             
                            setup(name="programme",
                                  version="1.0",
                                  description="=Mon programme",
                                  author="Vous",
                                  console = [
                                    {
                                        "script": "programme.py",
                                        "icon_resources": [(1, path_ico)]
                                    }
                                ],)
                            
                            
                            
                            
                            Effectivement je me suis trompé entre Python et Phyton cela dit retour à l'erreur de départ ma commande crash :/
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              15 février 2017 à 17:06:54

                              Pourquoi j'ai deux fois la fonction setup ?

                              Je remplacerai par

                              # -*- coding: latin-1 -*-
                               
                              from distutils.core import setup
                              import py2exe
                              import os
                                
                              path = os.path.realpath(__file__)
                              directory = os.path.split(path)[0]
                              path_ico = os.path.join(directory, "icone.ico")
                                
                                
                              setup(name="programme",
                                    version="1.0",
                                    description="=Mon programme",
                                    author="Vous",
                                    windows = [
                                      {
                                          "script": "programme.py",
                                          "icon_resources": [(1, path_ico)]
                                      }
                                  ],)



                              -
                              Edité par Anonyme 15 février 2017 à 17:07:31

                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 février 2017 à 17:20:00

                                oldProgrammer a écrit:

                                Pourquoi j'ai deux fois la fonction setup ?

                                Je remplacerai par

                                # -*- coding: latin-1 -*-
                                 
                                from distutils.core import setup
                                import py2exe
                                import os
                                  
                                path = os.path.realpath(__file__)
                                directory = os.path.split(path)[0]
                                path_ico = os.path.join(directory, "icone.ico")
                                  
                                  
                                setup(name="programme",
                                      version="1.0",
                                      description="=Mon programme",
                                      author="Vous",
                                      windows = [
                                        {
                                            "script": "programme.py",
                                            "icon_resources": [(1, path_ico)]
                                        }
                                    ],)



                                -
                                Edité par oldProgrammer il y a 6 minutes

                                J'ai remplacé mais toujours le crash au niveau de : 
                                *** copy dlls ***
                                copying C:\Python27\lib\site-packages\py2exe\run_w.exe -> C:\Python27\dist\programme.exe
                                Je commence à désespérer D: 


                                -
                                Edité par Tøm 15 février 2017 à 17:22:49

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  15 février 2017 à 17:33:53

                                  Tout est ok pour l'icône, maintenant c'est peut-être un problème de dépendance à voir selon ta version python, là j'ai jamais testé, quand j'ai utilisé py2exe, c'était avec la version 2.5 il y a plus de 10 ans et je n'avais pas ce genre de soucis.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    15 février 2017 à 17:41:57

                                    oldProgrammer a écrit:

                                    Tout est ok pour l'icône, maintenant c'est peut-être un problème de dépendance à voir selon ta version python, là j'ai jamais testé, quand j'ai utilisé py2exe, c'était avec la version 2.5 il y a plus de 10 ans et je n'avais pas ce genre de soucis.


                                    Que devrais-je faire ? Passer en python3 et changer pour coolfreeze ? Réinstaller python et py2exe ? Peut être la taille de l'icône qui pose problème (48x48) ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      15 février 2017 à 17:46:48

                                      Il n'y a pas de solution simple pour faire cela, cxFreeze a son lot de difficultés aussi, et le défaut de chacun et de devoir se trimballer pour chaque programme exécutable un interpréteur python, c'est quand même de gros fichiers, lourds à utiliser, je ne les conseille pas.

                                      Il y a plus difficile encore, avec cython qui permet de compiler un fichier transformer en langage C, seulement il faudra découvrir quelques notions des systèmes Unix, ce qui n'est pas simple quand on a jamais vu.

                                      Le principal conseil, serait de faire installer python aux personnes dont tu souhaites faire partager ton programme et l'exécuter simplement avec python.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        15 février 2017 à 17:51:06

                                        oldProgrammer a écrit:

                                        Il n'y a pas de solution simple pour faire cela, cxFreeze a son lot de difficultés aussi, et le défaut de chacun et de devoir se trimballer pour chaque programme exécutable un interpréteur python, c'est quand même de gros fichiers, lourds à utiliser, je ne les conseille pas.

                                        Il y a plus difficile encore, avec cython qui permet de compiler un fichier transformer en langage C, seulement il faudra découvrir quelques notions des systèmes Unix, ce qui n'est pas simple quand on a jamais vu.

                                        Le principal conseil, serait de faire installer python aux personnes dont tu souhaites faire partager ton programme et l'exécuter simplement avec python.

                                        D'accord bon bah merci d'avoir utiliser du temps pour m'aider :) et pour les conseils !

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Crash de la cmd lors de la compilation avec py2exe

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown