Pyinstaller 的所有文档都谈到了包括单个文件。是否可以包含一个目录,或者我应该编写一个函数来通过遍历我的包含目录来创建包含数组?
问问题
46781 次
5 回答
26
我很惊讶没有人提到官方支持的选项使用Tree()
:
https://stackoverflow.com/a/20677118/2230844
https://pyinstaller.readthedocs.io/en/stable/advanced-topics.html#the-toc-and-tree-classes
于 2017-02-06T06:41:17.367 回答
23
在规范文件中粘贴以下内容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')
于 2012-08-20T07:24:37.183 回答
8
是的,您只需将目录添加到 Analysis 对象,它们就会被复制。
a = Analysis(['main.py'],
datas = [('test/dir', 'test/dir')],
...)
于 2020-05-14T15:19:45.110 回答
7
只是使用glob
呢?
from glob import glob
datas = []
datas += glob('/path/to/filedir/*')
datas += glob('/path/to/textdir/*.txt')
...
a.datas = datas
于 2012-07-04T04:59:00.630 回答
7
问题比你想象的要容易
试试这个:
--add-data="path/to/folder/*;."
希望能帮助到你 !!!
于 2019-11-30T16:21:48.493 回答