【发布时间】:2014-02-07 04:11:41
【问题描述】:
我正在开发一个跨平台应用程序,它从源目录为 linux 和 windows 提供额外的二进制文件。现在我在我的 *.spec 文件中使用以下脚本来包含源目录中的所有二进制文件。
##### 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')
一切正常。现在的问题是,当我从 Windows 创建二进制文件时,Linux 的所有其他二进制文件也包含在最终的可执行文件中。这使得最终的独立可执行文件的大小更大。
有没有办法告诉 pyinstaller 从源目录中排除某些文件/二进制文件。 还有 是否可以排除某些 *.so/ *.dll 中确实不需要的最终的可执行文件?
我使用以下开发:-
Python 2.7
Pyinstaller 2.1
Debian 7 for linux
Windows 7 for Win
如有任何帮助,我们将不胜感激。
【问题讨论】:
标签: python linux windows pyinstaller