Pyinstaller: создать -EXE-файл + папка (в-режим onefile )


Теперь я работаю с Pyinstaller. У меня есть скрипт, который получает изображения из папки img..

/python
|----/img
|----|----icon1.ico
|----|----icon2.ico
|----maint.py

Мой сценарий для генерации .ехе

pyinstaller.py --windowed --noconsole --clean --onefile maint.py

Проблема в том, что только порождают .exe-файл, но вся папка / img опущена.

Вопрос: какой дополнительный синтаксис мне нужно поместить в предыдущую строку, чтобы автоматически получить .EXE-файл, папку + /ИМГ?

Обновление 12/18/2013

Я имею в виду: что после исполнения pyinstaller.py скрипт, со всеми аргументами, я должен видеть в папке /dist: the .exe-файл + папка /img со всеми значками или файлами растровых изображений, которые у меня есть для моего приложения

Спасибо

1 11

1 ответ:

Обновление 12/19/2013

Наконец-то мы его получили!

0. Я работаю с текущей версией PYInstaller + Python 2.67 с Sublime Text в качестве редактора.

1. В случае, если вашему скрипту Py требуются некоторые файлы, значки, изображения, вы должны включить функцию, которая извлекает эти файлы из папки проекта (в процессе разработки) или формирует временную папку данных (в случае развертывания). Этот скрипт должен быть в вашем коде именно в той части, в которую вы помещаете пути родственников чтобы получить ресурсы. Пожалуйста, точно следуйте этому руководству: https://stackoverflow.com/a/13790741

2. После предыдущего кода, Вы должны выполнить в первый раз команду pyinstaller-как я пост в моем вопросе пост-.

3. А теперь открой свой .файл спецификации, созданный после выполнения команды PYInstaller (расположенной в PYinstaller/) и добавления после строки" a. binaries " следующей строки в функцию EXE ():

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          Tree('..\\python\\images', prefix='images\\'),
....

Имейте в виду, что в Дерево(...) функция первый аргумент-это папка, которую нужно поместить снаружи: , Что означает, что я хочу включить все содержимое этой папки (Обратите внимание, что я ставлю относительный путь относительно AppStart.py file) в контейнер файла my .файл EXE.

4. После этой модификации повторно выполните команду pyinstaller, но в этом случае указывая на my .Файл спецификации:

pyinstaller.py --windowed --noconsole --clean --onefile AppStart\AppStart.spec

И, наконец, мое приложение может быть выполнено как исполняемый файл без необходимости копировать и вставьте все внешние папки, как кто-то упоминал. Но, как всегда, я рассматриваю хороший-практический путь.

Спасибо за Вашу поддержку.