Incluyendo un directorio usando Pyinstaller

Toda la documentación para Pyinstaller habla sobre la inclusión de archivos individuales. ¿Es posible incluir un directorio, o debo escribir una función para crear la matriz de inclusión atravesando mi directorio de inclusión?

Estoy sorprendido de que nadie haya mencionado la opción soportada oficialmente utilizando Tree() :

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

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

Pegue lo siguiente después de a = Analysis() en el archivo de especificaciones para recorrer un directorio de forma recursiva y agregue todos los archivos en la distribución.

 ##### 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') 

¿Qué hay de usar glob ?

 from glob import glob datas = [] datas += glob('/path/to/filedir/*') datas += glob('/path/to/textdir/*.txt') ... a.datas = datas