Skip to content

Example PyInstaller spec files

Radu Jipa edited this page Aug 29, 2014 · 5 revisions

Mac OS

# -*- mode: python -*-
a = Analysis(['../../bin/kano-burner'],
             pathex=['/Users/username/Kano/kano-burners'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)


import os
import glob

def extra_datas(path):
    def recursive_glob(path, files):
        for file_path in glob.glob(path):
            if os.path.isfile(file_path):
                files.append(os.path.join(os.getcwd(), file_path))
            recursive_glob('{}/*'.format(file_path), files)

    files = []
    extra_datas = []

    if os.path.isfile(path):
        files.append(os.path.join(os.getcwd(), path))
    else:
        recursive_glob('{}/*'.format(path), files)

    for f in files:
        extra_datas.append((f.split('kano-burners')[1][1:], f, 'DATA'))
    return extra_datas

a.datas += extra_datas(os.path.join(os.getcwd(), '..', '..', 'res'))
a.datas += extra_datas(os.path.join(os.getcwd(), '..', '..', 'win'))
a.datas += extra_datas(os.path.join(os.getcwd(), '..', '..', 'DISCLAIMER'))


pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='Kano Burner',
          debug=False,
          strip=None,
          upx=True,
          console=False , icon='../../res/icon/burner_icon.icns')
app = BUNDLE(exe,
             name='Kano Burner.app',
             icon='../../res/icon/burner_icon.icns')

Windows

# -*- mode: python -*-
a = Analysis(['..\\..\\bin\\kano-burner'],
             pathex=['C:\\Kano\\kano-burners'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)


import os
import glob

def extra_datas(path):
    def recursive_glob(path, files):
        for file_path in glob.glob(path):
            if os.path.isfile(file_path):
                files.append(os.path.join(os.getcwd(), file_path))
            recursive_glob('{}/*'.format(file_path), files)

    files = []
    extra_datas = []

    if os.path.isfile(path):
        files.append(os.path.join(os.getcwd(), path))
    else:
        recursive_glob('{}/*'.format(path), files)

    for f in files:
        extra_datas.append((f.split('kano-burners')[1][1:], f, 'DATA'))
    return extra_datas

a.datas += extra_datas(os.path.join(os.getcwd(), '..', '..', 'res'))
a.datas += extra_datas(os.path.join(os.getcwd(), '..', '..', 'win'))
a.datas += extra_datas(os.path.join(os.getcwd(), '..', '..', 'DISCLAIMER'))


pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='Kano Burner.exe',
          debug=False,
          strip=None,
          upx=True,
          console=False , icon='..\\..\\res\\icon\\burner_icon.ico')
Clone this wiki locally