Не удается добавить изображения из пользовательского интерфейса в сборку pyinstaller (с файлом .spec) - PullRequest
0 голосов
/ 11 сентября 2018

Я изо всех сил пытался заставить мое функционирующее приложение включить в него изображения - до сих пор я только что вручную включил в папку 'dist', и она отлично работает. Но так как я использую --onefile, я хочу, чтобы изображения были включены в автономное приложение.

Есть несколько похожих ответов на StackOverflow, но, похоже, ни один из них не работает, тем более что он периодически меняется.

Ниже приведены все последние мои попытки - мой вызов терминала / командной строки и файл .spec, который я сделал (из различных уроков). Обратите внимание, что я ничего не добавил в скрипт Python, и значок работает отлично, поэтому моя файловая структура не является дефектной. Любая помощь будет отличной!

Commandline:

pyinstaller  --onefile --windowed DragDrop_27.spec

Файл спецификации:

# -*- mode: python -*-

block_cipher = None


a = Analysis(['DragDrop_27.py'],
             pathex=['/Users/orange/PycharmProjects/imageMerge_01'],
             binaries=[],
         datas=[('bgimage.png', '.'), ('bgimageover.png', '.'), ('bgimagehover.png', '.'), ('bgimageprogress.png', '.'), ('play_logo.png', '.'), ('play_logoover.png', '.')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
a.datas += [('bgimage.png', '.','DATA'), ('bgimageover.png', '.','DATA'), ('bgimagehover.png', '.','DATA'), ('bgimageprogress.png', '.','DATA'), ('play_logo.png', '.','DATA'), ('play_logoover.png', '.','DATA')]
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='DragDrop_27',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=False )
app = BUNDLE(exe,
             name='DragDrop_27.app',
             icon='myicon.icns',
             bundle_identifier=None)

1 Ответ

0 голосов
/ 11 сентября 2018

Честно говоря, я не думаю, что возможно иметь изображения в автономной версии, если это не строго для личного использования.Я потратил как минимум 4 часа, пытаясь решить эту проблему, но она не сработала.Вы можете добавить изображение с помощью файла .ico и использовать его вместе с --onefile, но другие пользователи не смогут использовать его, если вы не предоставите им файл изображения отдельно.

pyinstaller --onefile --icon='Pig.ico' AnimalFacts.py
...