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

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

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

4b9b3361

Ответ 2

Вставьте следующее после 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')

Ответ 3

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

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

a.datas = datas