Включение каталога с помощью Pyinstaller

Вся документация для Pyinstaller говорит о включении отдельных файлов. Можно ли включить каталог или написать функцию для создания массива include путем перемещения моего каталога include?

3 Solutions collect form web for “Включение каталога с помощью Pyinstaller”

Я удивлен, что никто не упомянул официальный поддерживаемый вариант, используя Tree() :

https://stackoverflow.com/a/20677118/2230844

https://pythonhosted.org/PyInstaller/advanced-topics.html#the-toc-and-tree-classes

Вставьте следующее после a = Analysis() в спецификационном файле, чтобы рекурсивно перемещаться по каталогу и добавлять все файлы в него в дистрибутив.

 ##### include mydir in distribution ####### def extra_datas(mydir): def rec_glob(p, files): import os import glob for d in glob.glob(p): if os.path.isfile(d): files.append(d) rec_glob("%s/*" % d, files) files = [] rec_glob("%s/*" % mydir, files) extra_datas = [] for f in files: extra_datas.append((f, f, 'DATA')) return extra_datas ########################################### # append the 'data' dir a.datas += extra_datas('data') 

Как насчет использования glob ?

 from glob import glob datas = [] datas += glob('/path/to/filedir/*') datas += glob('/path/to/textdir/*.txt') ... a.datas = datas 
  • FileNotFoundError: Нет такого файла или каталога: .constants.json
  • Создание Exe с модулем Selenium: Py2exe / Pyinstaller
  • Пакетное приложение PyInstaller отлично работает в режиме консоли, сбой в режиме окна
  • Kivy Garden в PyInstaller - застрял, пытаясь отслеживать импорт
  • Объединение файлов данных с помощью PyInstaller (--onefile)
  • Использование Pymunk с Pyinstaller
  • Ошибка mysql.connector во время «except» при компиляции с помощью pyinstaller?
  • PyPy и PyInstaller
  • Python - лучший язык программирования в мире.