2017-09-21 3 views
0

J'ai un jeu de travail développé sur codeskulptor simplegui outils. Je l'ai converti en pygame par SimpleGUICS2Pygame. J'ai essayé de le convertir en exe, il a couru cette erreur: [Errno 2] Aucun fichier ou répertoire: « numpy-atlas.dll »simplegui basé pygame au fichier exe, erreur numpy-atlas.dll

Je regardais dans ce fil: Py2Exe, [Errno 2] No such file or directory: 'numpy-atlas.dll'

J'ai essayé de copier le numpy-atlas.dll dans le répertoire du fichier de code, cela a fonctionné, mais quand j'ai essayé d'exécuter le fichier exe, la ligne de commande apparaît et disparaît.

Je trouve la dernière réponse au travail, mais je ne sais pas comment/où exécuter un tel code:

from distutils.core import setup 
    import py2exe 

    import numpy 
    import os 
    import sys 

    # add any numpy directory containing a dll file to sys.path 

    def numpy_dll_paths_fix(): 
     paths = set() 
     np_path = numpy.__path__[0] 
     for dirpath, _, filenames in os.walk(np_path): 
      for item in filenames: 
       if item.endswith('.dll'): 
        paths.add(dirpath) 

     sys.path.append(*list(paths)) 

    numpy_dll_paths_fix() 
    setup(...) 

une recompilation utilisant pyinstaller, il a réussi, mais aucune fonctionnalité, voici ce que le fichier spec ressemble à:

# -*- mode: python -*- 

block_cipher = None 


a = Analysis(['balling.py'], 
      pathex=['C:\\Users\\SamsunG\\Desktop\\Python 2017\\convert'], 
      binaries=[], 
      datas=[], 
      hiddenimports=[], 
      hookspath=[], 
      runtime_hooks=[], 
      excludes=[], 
      win_no_prefer_redirects=False, 
      win_private_assemblies=False, 
      cipher=block_cipher) 
pyz = PYZ(a.pure, a.zipped_data, 
      cipher=block_cipher) 
exe = EXE(pyz, 
      a.scripts, 
      exclude_binaries=True, 
      name='balling', 
      debug=False, 
      strip=False, 
      upx=True, 
      console=True) 
coll = COLLECT(exe, 
       a.binaries, 
       a.zipfiles, 
       a.datas, 
       strip=False, 
       upx=True, 
       name='balling') 
+1

Peut-être utiliser cx_Freeze ou même mieux - Pyinstaller? –

+0

J'ai utilisé pyinstaller, tout fonctionnait bien, mais quand j'ai essayé de faire fonctionner mon jeu exe dans le répertoire de distribution, Windows demande de fermer l'invite de commande. Mon jeu n'a pas de chemins extérieurs, c'est du pong. Veuillez rechercher ci-dessus le fichier de spécifications pour le bundle créé. –

Répondre

0

Je n'ai jamais utilisé ni utilisé ni py2exe ni py2app. J'ai toujours utilisé cx_Freeze et ensuite supprimé et installé Pyinstaller, car il offre run bat or shell -> delete build dir -> go to dist dir -> run that exe système. Pour l'utiliser:

  1. Pyinstaller Installation: Type pip install pyinstaller dans votre coquille. Sous Windows, n'oubliez pas de l'exécuter avec les droits Admin si Python est installé pour tous les utilisateurs.

  2. cd dans votre répertoire avec votre fichier Python.

  3. Assurez-vous d'avoir un dossier "build" coupé (si présent). Saisissez pyinstaller <python_file_name> --noconsole -F. --noconsole est pour supprimer la fenêtre de la console dans l'exe, -F est pour la compilation de fichiers uniques. C'est pourquoi je préfère Pyinstaller.

  4. Attendez un peu. Alors obtenez votre .exe!

  5. Supprimez le dossier "build" apparu.

Pyinstaller est multi-plateforme (mais Pyinstaller pour Windows compilera uniquement pour Windows, Linux Pyinstaller pour compilera seulement pour Linux, MacOS Pyinstaller pour ne compilera pour MacOS, etc.).


Set console False ou utiliser --noconsole lors de la compilation lorsque EXEing jeux ou des applications de l'interface graphique.