Partage
  • Partager sur Facebook
  • Partager sur Twitter

Difficultés pour créer un executable

erreurs création .exe à partir de scripts avec pyinstaller ou cx freez

    2 juillet 2022 à 12:05:48

    Bonjour,

    Je sollicite votre aide car j'essaie de créer un executable à partir de scripts python.. j'y été arrivé une fois il y a 2 ans en utilisant Cx_Freeze... mais aujourd'hui impossible pour moi d'y parvenir à nouveau.

    J'essaie de créer un executable à partir d'un script python unique d'un jeu minecraft like créé avec ursina

    J'ai tenté deux méthodes :

    1)Avec Cx Freeze. Je vais en invit de commande, je tape : py -m pip install cx_Freeze. Puis je crée un script setup.py dans le dossier qui contient mon script du jeu :

    from cx_Freeze import setup, Executable
    base = None
    
    executables = [Executable("main.py", base=base)]
    
    packages = ["idna","ursina"]
    options = {
        'build_exe': {
            'packages':packages,
        },
    }
    
    setup(
        name = "Minecraft_Ursina",
        options = options,
        version = "1.0",
        description = 'Minecraft demo with Ursina',
        executables = executables
    )
    

    Puis ensuite je fais change directory vers mon dossier de travail qui contient le script du jeu. Et enfin py setup.py build. Cependant une erreur intervient dans le cmd durant la création de l'exe en me disant un RaiseError à propos des librairies introuvables (toutes, que ce soit idna ou ursina). 

    Pourtant dans le passé j'avais réussi avec cx_freeze en demandant d'inclure pygame... avez vous une idée please ? :D

    2) Avec pyinstaller : En cmd, faire py -m pip install pyinstaller. Puis faire change directory vers mon dossier de travail qui contient le script du jeu. Et de faire : pyinstaller le_nom_de_mon_programme.py

    Il me retourne une erreur : pyinstaller n'est pas reconnu comme commande

    Merci beaucoup pour votre aide, j'ai beau avoir épluché plusieurs sites et vidéos youtube, je ne m'en sors pas o_O

    Bonne journée

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      2 juillet 2022 à 18:18:46

      Un exemple avec pyinstaller, un fichier batch :
      set filename=toto_script
      pyinstaller  -D -w --icon=toto-152x152.ico --hidden-import=module-perso.py --exclude-module=numpy --exclude-module=cv2 %filename%.py 
      
      move dist\%filename% %filename%
      @RD /S /Q dist
      @RD /S /Q build
      @RD /S /Q __pycache__
      
      del %filename%.spec
      pause
      https://pyinstaller.org/en/stable/usage.html
      • Partager sur Facebook
      • Partager sur Twitter
        4 juillet 2022 à 9:31:35

        Merci :) Je vais regarder 

        Je suis surpris, je n'ai vu ce type de fichier ressortir sur aucun tuto pyinstaller que j'ai checké. Je vais essayer comme ça

        Une idée de pourquoi Cx_Freeze refuse de compiler quand je lui spécifie des librairies ? 

        Bonne journée

        • Partager sur Facebook
        • Partager sur Twitter
          4 juillet 2022 à 12:35:23

          il faut le message d'erreur complet (à défaut une capture écran), mais c'est peut-être parce qu'il y a du chargement dynamique  de module, et dans ce cas, il faut les indiquer manuellement à cx_freeze
          • Partager sur Facebook
          • Partager sur Twitter
            5 juillet 2022 à 11:25:38

            Merci de ton retour, je vais vous fournir une capture d'écran :)

            Pour comparer, je vais écrire un programme tout simple avec pygame (comme je l'avais fait il y a 2 ans) et rééssayer CX Freeze pour identifier si le problème vient d'Ursina (de modules dynamiques), ou de quelque chose de plus global

            Je reviens vers vous rapidement, merci !

            • Partager sur Facebook
            • Partager sur Twitter

            Difficultés pour créer un executable

            × 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