Pygame nicht laden von png nach .exe-Datei mit Pyinstaller

Ich versucht habe zu machen .exe von meinem .py-Spiel, und es ist schon echt frustrierend.

Ich bin mit Python 3.5.2, Pygame 1.9.2 und Pyinstaller 3.2.

Läuft das Spiel perfekt .py, aber nachdem ich enter pyinstaller --debug game.py, die .exe aufgebaut ist und wie ich es laufen lasse, bekomme ich die folgende:

debug-Bildschirm

Diese sind in den code-Zeilen aus game.py das kann im Zusammenhang mit der Fehlermeldung:

from os import path
img_dir = path.join(path.dirname(__file__), 'sprites')
title_screen = pygame.image.load(path.join(img_dir, 'title_screen.png'))

Ich denke, es muss etwas zu tun mit pyinstaler nicht in der Lage, um meine sprites-Ordner, weil wenn ich versuche zu laufen pyinstaller --icon=/sprites/icon.ico game.py, bekomme ich diese:

Symbol Fehler-Bildschirm

Aber wenn ich pyinstaller --icon=icon.ico game.py es lädt kurz das icon in Ordnung.

Hier meine spec-Datei:

# -*- mode: python -*-

block_cipher = None

added_files = [
         ( '/sprites', 'sprites' ),
         ( '/music', 'music' ),
         ( 'Heavitas.ttf', '.'),
         ( 'Roboto-Light.ttf', '.'),
         ( 'high scores.csv', '.')
         ]


a = Analysis(['spec_file.py'],
             pathex=['C:\\Users\\rodri\\Documents\\Code\\The Color That Fell From The Sky'],
             binaries=None,
             datas=added_files,
             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='spec_file',
          debug=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='spec_file')
  • Sie könnte konvertieren Sie alle Ressourcen, um base64-strings (vielleicht komprimieren ersten), diese in das Skript und schreiben/erstellen der Dateien bei Ausführung
Schreibe einen Kommentar