Подтвердить что ты не робот

Pyinstaller: сгенерировать -exe файл + папку (в режиме -onefile)

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

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

My script для генерации .exe

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

проблема в том, что генерировать только файл .exe, но вся папка /img опущена.

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

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

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

Спасибо

4b9b3361

Ответ 1

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

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

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

1. Если ваш Py script требует некоторых файлов, значков, изображений, вы должны включить функцию, которая извлекает эти файлы из папки проекта (в разработке) или формирует временную папку данных (в случае развертывания). Этот script ДОЛЖЕН быть в вашем коде точно в той части, которую вы поместите пути родственников, чтобы получить ресурсы. Следуйте именно этому руководству: fooobar.com/info/106053/...

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

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

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

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

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

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

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

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