0
我正在開發一個跨平臺的應用程序,該應用程序從Linux和Windows的源目錄中提供額外的二進制文件。現在,我在* .spec文件中使用以下腳本來包含源目錄中的所有二進制文件。Pyinstaller - 從最終可執行文件中排除文件
##### 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創建binay時,所有額外的linux二進制文件也在最終的可執行文件中生效。這使得最終的獨立版本可執行文件的大小更大。
有沒有辦法告訴pyinstaller從源目錄中執行某些文件/二進制文件。也是否有可能執行某些* .so/* .dll這是真正不需要在最終的可執行文件?
我用發展如下: -
的Python 2.7
Pyinstaller 2.1
Debian的7對Linux
的Windows 7爲Win
任何幫助appriciated。
謝謝你的腳本。有效。但幾乎沒有修改。像這樣: - 'a.datas + = extra_datas(some_dir,[「path/to/something.txt」,「path/to/something.exe」,...])' –