包括使用Pyinstaller目录(Including a directory using Pyin

2019-06-26 01:00发布

所有Pyinstaller文档的谈论,包括单个文件。 是否有可能包括目录,或者我应该写一个函数来创建通过遍历我包括目录包括阵列?

Answer 1:

我惊讶,没有人提到使用官方支持的选项Tree()

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

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



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


Answer 3:

怎么样只用glob

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

a.datas = datas


文章来源: Including a directory using Pyinstaller