Создавайте образы и некоторые файлы конфигурации, такие как файлы txt и xml, с помощью pyinstaller

У меня проблема с pyinstaller при добавлении некоторых файлов данных, таких как изображения и txts, в программу python. Например, я создал панель инструментов со значками и храню их в отдельной папке с именем images. Также у меня есть несколько файлов txt и xml для хранения некоторых конфигураций. Эти файлы txt и xml хранятся в другой папке с именем data_files. Все файлы py хранятся в другой папке с именем source.

Когда я пытаюсь собрать эту программу на Python с помощью pyinstaller, pyinstaller может успешно построить всю исходную папку, но папки images и data_files не могут быть построены. Я проверил документацию pyinstaller, но не нашел решения. Я много раз искал в Google и нашел только этот ресурс как полезный, но это очень неадекватный ресурс.

Мой главный вопрос: как я могу создать exe-файл с отдельной папкой, такой как изображения и confs, с помощью pyinstaller?

Изменить: Я нашел решение. Когда вы создаете файл спецификации, вы должны указать параметр a.datas .

# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), '/home/vmode/Desktop/derlem2/sources/TextSTAT.py'],
             pathex=['/home/pyinstaller'])
a.datas += [("Images/New.gif","/home/vmode/Desktop/derlem2/Images/New.gif","DATA")]
a.datas += [("Images/Open.gif","/home/vmode/Desktop/derlem2/Images/Open.gif","DATA")]
a.datas += [("Images/Column.gif","/home/vmode/Desktop/derlem2/Images/Column.gif","DATA")]
pyz = PYZ(a.pure)
exe = EXE( pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'TextSTAT'),
          debug=False,
          strip=False,
          upx=True,
          console=1 )

Приведенный выше код спецификации разработан для моего проекта. Как видно из этого кода спецификации, я включил 3 значка для сборки с помощью программы python. Когда программа создается, существует отдельный исполняемый файл со встроенными этими значками.

Но что, если у нас так много файлов? Предположим, у нас есть 1000 иконок для использования в нашей программе. Записывать в файл спецификации вручную очень неадекватно. Должна быть система цикла для чтения каталога файлов и динамического добавления этих файлов. Но я не мог найти, как добавить эти файлы динамически. Думаю, нет возможности добавить столько файлов вручную. Если кто знает поделитесь пожалуйста.

8
задан Community 23 May 2017 в 12:02
поделиться